code review是保障代码质量与项目稳定性的有效方法之一,汇总一下自己平时工作中做code review时的一些关注点,以及做code review有什么好处。
一、code review 好处
- 统一编码风格、交付高质量的项目版本,提高版本的提测质量
- 互相学习,共同进步,逐渐提高整个团队的编码能力、团队内部实现项目人员的互备
- 帮助他人成长,提升自己的核心竞争力
- 补充测试范围、加深对系统实现的理解
二、code review 关注点
1、业务功能相关
需求功能点是否被完全覆盖,业务代码扩展性、维护性是否良好。
2、接口参数校验
- 老接口入参与出参发生变化时,需要确认是否兼容调用方
- 全新接口需要关注是否对必填项、取值范围、长度、类型等进行了校验。
3、 数据处理
- 对于用户核心数据(证件号、卡号等)有没有进行数据脱敏处理,用户密码是否加密传输等。
- 版本迭代之间的数据是否兼容,如果不兼容有没有进行特殊处理。
4、兜底方案
是否有兜底方案,如果有则需要判断方案是否合理,异地双活、主备域名都是比较大的一些兜底方案,业务层面也可以利用这种方式保证核要业务的可用性。
5、数据库
- 性能方面,需要通过表数据与查询条件来判断该语句是否存在性能问题
- 业务层面,修改表结构新老数据兼容、查询条件是否符合需求
6、监控
是否需要监控、监控埋点是否合理,例如在关键业务节点上添加接口调用次数,响应时长、任务成功失败等监控
7、 代码方面
代码编码规范可以参考阿里巴巴的《Java开发手册》,最新版本是泰山版,下面总结了几个自己经常关注的点:
- NPE问题
判断是否会出现空指针,对于会出现空指针的地方有没有进行特殊处理,如果没处理可能会由于NPE问题而影响业务主流程,在条件处理、日志打印时多关注空指针相关的情况。 - 日志规范
日志打印是否合理,如日志打印大对象、日志打印比较频繁都可能会导致磁盘IO而影响服务性能,日志打印是否便于问题的排查与定位等等 - 内存泄漏
声明的资源(io流、数据库连接、网络连接等)是否关闭,如果没有关闭可能会引起内存泄漏 - 异常处理
如果捕获了异常是否有处理,未处理的异常有没有向上抛,抛出去的异常有没有被上层处理
如果没有捕获异常则需要判断捕获异常或者向上抛异常