代码逻辑是否符合设计文档?
代码中使用的格式、符号、结构等风格是否一致?
3.3 有效性检查
您的代码是否遵守既定标准?
所有变量均已正确定义和使用
所有注释均准确
每个程序调用都使用正确数量的参数
3.4 检查可变性(changeability)
代码中的常量是否可以轻松修改(例如,通过使用构造、将它们定义为类常量或使用特殊常量类)
代码是否包含交叉解释或数据字典来解释程序如何访问变量和常量?
您的代码是否只有一个出口和入口(除了关键异常处理之外)?
3.5 可预测性检查(Predictability)
代码是否是使用具有明确定义的语法和语义的语言开发的
代码是否避免依赖于开发语言默认提供的功能
代码是否意外进入无限循环?
您的代码是否避免了无限递归?
3.6 稳健性检验
您的代码是否采取措施避免运行时错误(例如数组边界溢出、除以零、值超出范围、堆栈溢出等)?
3.7 构建
程序中的每个函数是否作为可识别的代码块存在
循环只有一个入口吗?
3.8 检查可追溯性(traceability)
代码是否唯一标识每个程序
是否有一个交叉引用框架可以用来将代码和开发文档相互映射?
代码是否包含修订历史记录,显示代码更改的记录位置及其原因?
所有安全功能均已贴上标签吗?
3.9 理解水平检查(理解水平)
注释对每个子程序的解释是否足够清楚?
是否使用或明确注释了任何不清楚或不必要的复杂代码?
使用一些统一的格式化技术(缩进、空格等)来提高代码清晰度。
命名约定是否使用易于记忆、反映类型等的方法定义?
每个变量定义一个有效值范围
您代码中的算法是否符合开发文档中描述的数学模型?
3.10 可验证性检查(Verifiability)
代码中的实现技术是否容易测试?
2. 代码审查经历检查项目
下面是一个实际的清单,它将帮助您确保通过分类和有针对性的检查项目来覆盖您的代码审查。
1 JAVA编码标准检查项目
检查项按照JAVA编码规范执行。参见《Software Quality Assurance: Documentation and Reviews》。
2 面向对象设计的检查项目
这些要点的范围太广,本文无法解释。当然,在代码审查中,判断主要基于经验。
A) 类设计和抽象是否合适?
B) 是否符合面向接口编程的理念?
c) 是否采用合适的设计范式
三项绩效考核项目
性能检查是大多数代码的一个敏感方面,程序员经常编写功能和语法正确的代码,但在正式运行时性能却很差。所以你必须重做很多工作或者从头开始。
A) 如果出现大量数据,发送或上传队列、表、文件等是否会出现问题,是否有分配内存块大小、队列长度等控制参数?
B) 哈希表、向量等集合数据结构是否正确选择和配置,包括容量、负载因子等参数是否设置正确,数据结构是否同步?
C) String 对象是否存在误用?
D) 是否使用通用线程池、对象池模块以及其他缓存技术来提高性能。
B) 传递对象值或参数是否存在问题?对象的clone方法是否被过度使用?
c) 临时对象是否被频繁、大量创建
D) 是否尽可能使用本地对象(栈对象)
E) 当只需要对象引用时是否创建新的对象实例
10 异常处理检查项目
虽然JAVA提供了方便的异常处理机制,但异常常常被捕获但未被处理。你可以打开一些代码。最常见的症状是,进入特定方法后,每一行代码都被一个大的try/catch 包围,并将异常作为异常打印到控制台。目的。
A) 每次方法返回时是否正确处理异常(最简单的处理,例如记录到日志文件)?
B) 是否验证数据值和范围是否合法,包括断言的使用
C) 错误路径上的所有资源和内存是否都已释放?
D) 正确处理抛出的任何异常。特别是,必须在整个调用堆栈中捕获和处理子方法引发的异常。
E) 如果调用导致错误,则必须通知方法的调用者。
F) 不要忘记测试代码的错误处理部分。很多代码在正常情况下工作正常,但是当出现错误时,整个系统就会崩溃。
11 方法(功能)检查项目
A) 所有方法参数都经过验证吗?
B) 是否检查了数组类结构边界?
C) 变量在使用前是否初始化
D) 返回对堆对象的引用。它不返回堆栈对象引用。
E) 方法API 是否定义良好,即尽可能以面向接口的方式编程,以方便维护和重建?
12项安全检查项目
A) 对于从命令行执行的代码,您应该仔细检查命令行参数。
B) WEB程序检查访问参数是否合法。
C) 是否使用适当的加密算法来存储敏感信息。
D) 通信时考虑是否使用安全的通信方式
其他13 人
A) 日志输出是否正确并受控?
B) 配置信息是如何获取的并且是硬编码的吗?
三、总结
在项目中引入代码审查有很多好处,包括提高代码质量、确保项目和产品稳定性以及积累开发经验。评论也是有代价的。这方面属于代码审查过程,将在另一篇文章中介绍。
作者:麦克斯韦周
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/654945.html