代码审核清单
设计
- 代码设计是否符合项目整体框架
- 是否符合SOLID原则(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)
- 设计模式是否使用得当
- 代码是否放置在合适的包中
- 是否提取了可重用代码
- 是否过度设计,导致额外的复杂性
可读性/可维护性
- 字段,变量,方法,参数明明是否含义明确
- 评审人是否能轻松读懂
- 是否能够读懂测试用例
- 测试用例是否覆盖了关键分支
- 异常消息是否包含必要信息且易懂
- 代码注释是否明确,不该有过期的注释
功能&性能
- 代码是否执行的期望的功能
- 是否隐含bug或者明显错误
- 是否实现了需求
- 代码作者是否需要创建公开文档或者修改已存在的帮助文档
- 是否有性能和安全问题
- 是否满足强制的性能需求
- 修改的代码是否会影响已存在的性能测试结果
资源使用
- 调用数据库的方式是否正确
- 是否有无用的网络调用
- 是否有内存泄露问题
- 内存是否可能无限增长
- 网络连接或者流是否正常关闭
- 资源池(线程池,数据库连接池,httpclient)是否正确设置
补充关注点
- 使用反射的原因,是否在合理情况下
- 各种timeout设置是否正确
- 使用并发的逻辑
- 是否在多线程环境中使用了正确的数据结构(避免线程安全问题)
- 是否存在资源竞争
- 是否合理使用锁
- 是否应该对这部