需求确认
- 如果需要与其它系统进行交互,一定要知道交互的每一步细节
- 所需要的外部接口
- 功能是否合理
- 如果发现需求与已有的功能类似,能否调整下需求,减少开发工期
- 评定工期
需求设计
- 写出设计文档及数据结构设计, 与前端及其它APP的交互接口
- 与高程进行确认,设计有无问题,此步即便花费的时间较多,也比后来返工要节约时间
- 此步要让前端也参与进来,确认返回值是否方便JS解析
- 接口的设计要尽量考虑复用性通用性,扩展性;能做成公用就尽量做成,不要与某功能,某活动绑定死
- 交互过程中有无安全问题
- 返回的数据的有无泄露玩家隐私(比如带回yyuid)
- 减少一切不必要的参数,不必要的返回值
编码
- 先订好接口,然后审查下,整个设计的抽象,封装是否合理
- 把此次开发需要的SQL,向第三方申请的资源(接口,短信,报警等功能)或权限记录下来,方便发布时减少不必要的时间
自测
- 各功能点是否可用及是否与需求一致
- 对DAO层,检查缓存实现是否正确及合理;数据库的主键,索引是否创建及正确
- 对Service层,检查关键操作有无日志;事务是否开启,是否合理,事务的位置是否合理(尽量减少事务周期)
- 对核心数据的操作,检查有无并发风险;如果有,是否已解决
- 核心功能或与金钱相关的操作有无监控,报警
- 单元测试有无通过;各接口性能有无达标
- 前端有无频繁调用或刷某个接口,此接口是否要缓存实现及通过性能测试
- 再过一遍整个功能的交互流程,有无安全漏洞,或可优化的地方
与前端,APP联调
交与测试提测
项目上线的数据观察
- 观察线上日志,核心日志是否遗漏
- 接口耗时是否在预期内
- 访问量是否在预期内
- 监控是否正常运行