一个简单的弱网搞死了组内前端

2022-03-18  本文已影响0人  草帽lufei

前言

最近上线了一个 React Native 外访项目,用户为公司外访员,外访员根据公司业务去实地考察,收集记录一些资料,考察记录资料的过程全部用公司配的专用手机,里面安装了当前外访项目APP。目前项目试运行阶段,还没有正式交付。APP项目上线后,在用户真实使用中遇到一些各种各样的问题,有些问题处理时也比较棘手(如弱网情况),这次主要复盘APP在实际场景中的弱网(或网络不稳定)相关的问题。

项目需求方提出的原始APP需求(只列弱网影响的部分)
  1. APP 功能需支持无网的情况下的也能正常操作
  2. 离线模式数据自动同步。(包含图片、录音,客户端操作,调用后端业务接口,实现客户端离线操作的数据同步到服务端)
  3. 5分钟自动上传APP定位。(监管需求)
APP在试运行期间弱网情况下遇到的问题

前提:开发测试人员在网络在正常情况和无网情况APP功能正常,但是在试运行阶段,国内部分地区用户(如四川)实际会有大量网络信号弱的地方,如地下车库,或老城区等位置操作APP时会有功能异常,表现为:

问题分析

项目试运行模式是先由北京区用户试运行三天,北京区试运行通过后,再慢慢放开国内其他地区用户。北京区用户正式试用的三天中,白天工作时间北京的研发中心开发测试人员轮流跟访,有疑问现场指导,APP在北京区用户试运行期间,没有发现弱网相关问题,有功能进行优化微调,试用国内其他地区后,有个别用户反馈过功能出现异常情况,直到四川地区用户开始试用后,一周内反馈了大量APP功能异常的问题,通过和四川地区用户沟通,发现是四川地区部分地方网络信号弱导致的。

在功能开发人员内网测试OK通过情况下,测试人员使用 Charles 抓包工具,设置弱网参数,单独测试发现APP核心流程正常操作受影响,从技术实现层分析如下

整体总结为三个方面的原因

解决
公司日常开发现状

复盘思考

  1. 技术方案设计前期考虑不周,离线同步相关功能在开发阶段出现问题的时候,分析解决了一段时间后发现现有方案有缺陷,但是由于时间因素,也无法调整项目的整个技术实现方案,变成了离线同步出现的问题主要单方面由前端解决,这样解决不彻底,前端开发人员工作压力大还头大
  2. 功能开发测试阶段,没有完整还原真实场景,如四川等地区出现的网络信号不好情况
  3. 功能开发上线后,部分开发人员配合意愿低,只要自己的那部分没问题,代码就不改,最终就变成了APP上出现的问题基本都是前端的问题
  4. 不同手机型号功能兼容,工作空间兼容处理,前期评估中开发人员不知道实际手机型号情况以及APP还是运行在工作空间中
  5. 由于一些问题前后端分别都能解决的都放到了前端人员来解决,没有很好划分岗位职责,导致前端代码的业务复杂度越来越高,代码逻辑也越来越复杂,涉及到逻辑的部分改动也越来越难,开发过程前后端合作过程情绪波动大,吵架撕逼,由于这个项目属于公司不同业务线组成的人员,项目负责人并不能很好处理这种人员问题,领导也只是开会提一下大家要和谐,并没有实质行动
  6. 团队前端开发成员第一次用 ReactNative 开发APP,有些问题解决起来速度相对较慢,但是评估时依然按照熟悉技术栈去评估工期,导致前端工期总是往后延期,高频加班赶进度
  7. 在有限的开发时间内,按期上线,前端的功能样式调整,操作优化等也时间未算在任务排期中
  8. 开发方面时间紧,任务重,前端开发人员在前期的代码逻辑没能好好梳理,后期问题排查,难度加大
  9. APP开发中JS引擎阻塞代码中的console.log输出也受到影响,正常调试分析困难增大
  10. 项目开发阶段,技术人员高频高强度加班,工作效率低下,也没了生活,回家就是睡个觉,幸福指数降低
  11. 这次的项目对内负责人是前端,也负责主力功能开发,前端开发人员配合相对积极,对于一些暴露的问题能很好的通过技术全局去思考,并积极向上反馈找领导配合解决一些业务问题
  12. 时间紧任务重的情况,前端使用新技术栈,对自身学习、实践能力是个很好的磨练

如何变的更好

突然,想问个问题

为什么总是前端在高频加班?

我能有什么办法,管理层及非前端开发选手认为前端的工作简单,修改功能也是前端简单前端改,后端涉及业务和逻辑,不能轻易动,产品UI设计认为前端什么都能实现,不用后端参与,前端开发可以基于UI库随便改,网上随便看到的功能前端也能快速实现,总体认为前端工作简单,薪资也不用多给,有问题前端改也都是很快就能搞定的

image
上一篇下一篇

猜你喜欢

热点阅读