需求流程&开发注意点
需求评审
①与产品评审:重点判断该需求的可行性,对现有系统的影响,是否适合现有框架和能力
②与技术评审:重点在于对技术方案进行评审,判断技术方案的可行性和影响范围,拉上测试人员一起,将信息拉平
代码评审
①评审后改动量小的:修改后立即将修改点同步测试人员进行测试
②评审后改动量大的:修改完成后提交测试,测试完成后,再次进行评审,同步信息
辅助技术手段
①监控告警:建设监控告警平台,使用技术手段提高平台的可靠性,及时发现问题
②提供投诉通道:对于一些隐藏的异常,在测试、监控环节没有覆盖到,提供投诉通道通过用户来告知
测试
①自动化测试:对于复杂的业务场景,完善自动化测试案例,当核心代码修改后,便于全场景覆盖进行测试,减少人工失误导致漏测
②重点案例:记录重点案例,对于重点,核心链路,要保证链路的通畅性,这个需要在日常测试和发版中进行积累
个性化需求
当有个性化需求时,如果原代码结构中存在主链路一说,则在进行个性化需求的开发中尽量将个性化需求的不同点留在入口处,做区分和前置操作,后面的流程尽量归到主流程上,方便以后进行重构和统一修改
兜底操作
对于一些不可预料的情况,要进行一些兜底操作(最大情况、最差情况、不可察情况),其中对于不可察的情况可以到时候录入测试的重点案例中进行记录
回滚标准
①影响到核心逻辑
②影响到用户/商户体验
判空
对于判空,尤其是核心链路的get/set方法一定要注意判断是否有空的情况,避免因为空指针导致核心链路中断
对象转换
对于对象类型也要注意,在设计到泛型的时候需要特别注意,泛型中存在泛型擦除,可能存在将不同类型的对象赋值,在进行对象转换时会因为对象类型导致转换(cast)异常
开发中的一些思考
①对于一些历史代码,现需要一些修改,可以通过询问调用方是否对要修改的地方有过调用,如果没有的话可以大胆改掉;如果有过调用,则要协商修改方案,如果发布时牵扯到灰度,则需要考虑是否跳过灰度,或者提供兜底措施兼容,保证原来的调用不受影响
②针对需求:一切以需求方为准,假设接入的接口有多个字段,除去接口必传字段,对于接口的多余字段,需求方没有要求的字段,不要一次性全部接入,以需求为准,要哪些接哪些
③写代码前先构思,构思完再开始编写,不过怎样先实现功能,先有后优,在实现功能之后再看看自己编写的代码还有那些可以优化的地方,然后进行优化
④多考虑多线程的情况,看看再多线程的情况下有没有意外情况