* 是否遵循统一的编码风格?
* 类、变量和函数的命名是否体现其目的,要确保可读性?
* 流程、逻辑是否简单易懂,不能过于复杂?
* 代码中是否存在魔数?
* 是否存在多余的被注释的代码?
* 是否存在可以删除的日志或调试代码?
* 代码是否尽可能的模块化,减少外部耦合?
* 是否存在过长需要分拆的函数?
* 是否存在重复可消除的代码?
* 循环、递归是否设置了正确的终止条件,有没有死循环的可能性?
* 成员变量是否初始化,权限设置是否合理?
* 是否对其他函数的返回值进行了有效性判断?
* 是否考虑了函数的可重入性?
* 是否存在多线程并发使用的成员变量、全局变量,是否存在安全问题?
* 互斥资源是否考虑加锁或无锁算法?
* 共享资源是否考虑同步、线程安全?
* 是否存在潜在的死锁情况?
* 系统资源是否准确释放,如文件等?
* 是否处理边界条件、异常情况?
* 输入数据有没有检查,无效参数能否正确处理?
* 第三方库的异常是否被捕获?
* 返回值是否符合设计要求?
* 异常是否被淹没,有没有正确处理?
* 注释是否合适,并且准确体现代码的意图?
* 边界条件及异常情况有没有描述?
* 是否有未完成的代码,应该移除还是进行标记TODO?
* 可否单元测试,比如外部依赖、初始化等?
* 是否存在单元测试?
* 单元测试是否完整,是否测试之后可以保证完成预期的功能?
* 算法是否存在提升时间、空间效率的可能性?
* 有没有更好的数据结构进行问题建模?
* 是否具有良好的扩展性、复用性?
* 流程划分是否合理易于理解?
* 是否实现了模块间解耦、模块内聚合?
* 是否实现了数据与流程的分离?
* 是否考虑了接口的扩展性?
* 是否考虑了测试及后续维护?
* 软件开发bug不可避免,评审目的是提升质量共同进步,不能以评审发现的问题数量进行批评、考核;
* 代码评审需要考虑代码行数,每次评审量宜在200-400行,过多会影响评审效果;
* 所有的问题和修改,必须由原作者进行确认;
* 使用流行的评审工具可以极大提高评审效率;
本文来源:程序之心,转载请注明出处!
最新内容
© 2016 - 2023 chengxuzhixin.com All Rights Reserved.