一、Code Review 目标
1. 更快、更早发现代码问题
2. 优化技术流程,同时也优化我们的社交流程,促进团队沟通协作流畅性
3. 帮助大家提高代码质量,鼓励程序员们相互学习对方的长处和优点
二、CodeReview不是万能的
1. 并不能承担发现代码错误的职责
2. 不能作为保证代码风格和编程规范的主要手段,可以通过一些代码风格插件或工具来完成此工作
三、CodeReview能保证的
基本项
1. 新代码是否与全局架构保持一致
2. 所有的代码是否简单易懂
3. 代码是否尽可能的模块化了
4. 是否有可以被库函数替代的代码
5. 是否存在多余的或是重复的代码
6. 是否有可以被替换(存在竞争冲突的安全隐患)的全局变量
7. 循环是否设置了长度和正确的终止条件
8. 是否有可以删除的日志或调试代码
9. 是否有被注释掉的代码
10. 代码是否具有可读性和可维护性
字段、变量、参数、方法、类等的命名是否真实反映了他们所承载的的事物,是否能够望文生义
是否可以通过阅读代码 基本理解它做了什么
日志否能够反映问题
注释与代码是否匹配
11. 是否有功能上的缺陷
代码是否包含明显bug,如:空指针,越界,条件判断错误等风险
是否有性能上的风险,如:远程调用使用频繁是否合理(RPC/DB/CACHE)
安全项
1. 所有的数据输入是否都进行了检查(检测正确的类型,长度,格式和范围)
2. 在哪里使用了第三方工具,返回的错误是否被捕获
3. 无效的参数值是否能够处理
4. 业务代码主动抛出的异常是否为Exception,禁止使用RuntimeException
5. 数据是否需要加密
6. 代码的运行或业务功能是否需要输出监控日志
7. 是否合理释放的资源:
* 是否存在内存泄露风险
* 是否合理关闭IO资源(DB/File等)
* 资源池是否设计合理(线程数量,队列长度,休眠时间等)
8. 如果设计到缓存的使用,是否存在缓存存储滥用,是否正确的设置失效机制
良好的codereview习惯可以帮助团队规避一些问题,可以有效提升代码质量,今天你codereview了吗?