代码评审清单及注意事项

2016-12-25 From 程序之心 By 丁仪

常规

* 是否遵循统一的编码风格?

* 类、变量和函数的命名是否体现其目的,要确保可读性?

* 流程、逻辑是否简单易懂,不能过于复杂?

* 代码中是否存在魔数?

* 是否存在多余的被注释的代码?

* 是否存在可以删除的日志或调试代码?

* 代码是否尽可能的模块化,减少外部耦合?

* 是否存在过长需要分拆的函数?

* 是否存在重复可消除的代码?

* 循环、递归是否设置了正确的终止条件,有没有死循环的可能性?

* 成员变量是否初始化,权限设置是否合理?

* 是否对其他函数的返回值进行了有效性判断?

多线程

* 是否考虑了函数的可重入性?

* 是否存在多线程并发使用的成员变量、全局变量,是否存在安全问题?

* 互斥资源是否考虑加锁或无锁算法?

* 共享资源是否考虑同步、线程安全?

* 是否存在潜在的死锁情况?

安全

* 系统资源是否准确释放,如文件等?

* 是否处理边界条件、异常情况?

* 输入数据有没有检查,无效参数能否正确处理?

* 第三方库的异常是否被捕获?

* 返回值是否符合设计要求?

* 异常是否被淹没,有没有正确处理?

文档

* 注释是否合适,并且准确体现代码的意图?

* 边界条件及异常情况有没有描述?

* 是否有未完成的代码,应该移除还是进行标记TODO?

测试

* 可否单元测试,比如外部依赖、初始化等?

* 是否存在单元测试?

* 单元测试是否完整,是否测试之后可以保证完成预期的功能?

优化

* 算法是否存在提升时间、空间效率的可能性?

* 有没有更好的数据结构进行问题建模?

* 是否具有良好的扩展性、复用性?

* 流程划分是否合理易于理解?

设计阶段方案评审

* 是否实现了模块间解耦、模块内聚合?

* 是否实现了数据与流程的分离?

* 是否考虑了接口的扩展性?

* 是否考虑了测试及后续维护?

代码评审注意事项

* 软件开发bug不可避免,评审目的是提升质量共同进步,不能以评审发现的问题数量进行批评、考核;

* 代码评审需要考虑代码行数,每次评审量宜在200-400行,过多会影响评审效果;

* 所有的问题和修改,必须由原作者进行确认;

* 使用流行的评审工具可以极大提高评审效率;

本文来源:程序之心,转载请注明出处!

君子曰:学不可以已。
《黑匣子思维》
“黑匣子思维”是一种记录和审视失败并从中吸取经验的积极态度。不惧怕面对失败,反而视失败为学习的途径。不会否认过失、推诿责任和想方设法脱身,而会把失败作为样本深入研究。 缺乏从失败中学习的态度、勇气和能力,会对个体或行业带来严重危害。千方百计避免犯错并不是我们的目标,学习如何聪明而有意义地犯错,将每一次失败作为测试我们成绩的机会。
发表感想

© 2016 - 2023 chengxuzhixin.com All Rights Reserved.

浙ICP备2021034854号-1    浙公网安备 33011002016107号