Co
de Review
理论与实战
摘
要
Code Review
是一种通过复查代码提高代码质量的过程,在
XP
方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节。本文通过对
Code Review
的一些概念和经验的探讨,就如何进行
Code Review
和
Code Review
中应该注意什么提出一些建议。
本文中涉及的问题大部分针对
JAVA
类代码。同时本文不涉及
Code Review
过程和组织。
关键词:
Code Review
,
JAVA
,
XP
,代码质量
,软件工程
凡事知其然还要知其所以然
,
我们首先需要知道什么是
Code Review
和我们使用它的目的是什么。
Code Review
是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码,测试过程和注释进行检查。
Code Review
主要用来在软件工程过程中改进代码质量,通过
Code Review
可以达到如下目的:
在项目早期就能够发现代码中的BUG
帮助初级开发人员学习高级开发人员的经验,达到知识共享
避免开发人员犯一些很常见,很普通的错误
保证项目组人员的良好沟通
项目或产品的代码更容易维护
知道了
Code Review
的目的,我们就可以看看如何做
Code Review
了,但在做
Code Review
前我们还有事要做,所谓预则立,不预则废,就是说如果在进入
Code Review
之前我们不做些准备工作,
Code Review
很容易就变得没有意义或是流于形式,这在我们周围是有很多例子的啊。进入
Code Review
需要检查的条件如下:
a)
Code Review
人员是否理解了
Code Review
的概念和
Code Review
将做什么
如果做
Code Review
的人员不能理解
Code Review
对项目成败和代码质量的重要程度,他们的做法可能就会是应付了事。
b)
代码是否已经正确的
build
,
build
的目的使得代码已经不存在基本语法错误
我们总不希望高级开发人员或是主管将时间浪费在检查连编译都通不过的代码上吧。
c)
代码执行时功能是否正确
Code Review
人员也不负责检查代码的功能是否正确,也就是说,需要复查的代码必须由开发人员或质量人员负责该代码的功能的正确性。
d)
Review
人员是否理解了代码
做复查的人员需要对该代码有一个基本的了解,其功能是什么,是拿一方面的代码,涉及到数据库或是通讯,这样才能采取针对性的检查
e)
开发人员是否对代码做了单元测试
这一点也是为了保证
Code Review
前一些语法和功能问题已经得到解决,
Code Review
人员可以将精力集中在代码的质量上。
好了,进入条件准备好了,有人在这些条件中看到
Code Review
这也不负责,那也不检查,不禁会问,
Code Review
到底做什么?其实
Code Review
主要检查代码中是否存在以下方面问题:代码的一致性、编码风格、
代码的安全问题、代码冗余、是否正确设计以满足需求(性能、功能等等),下边我们一一道来。以下内容参考了
《
Software Quality Assurance: Documentation and Reviews
》一文中的代码检查部分。
代码是否完全实现了设计文档中提出的功能需求
代码是否已按照设计文档进行了集成和
Debug
代码是否已创建了需要的数据库
,
包括正确的初始化数据
代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型
代码的逻辑是否符合设计文档
代码中使用的格式、符号、结构等风格是否保持一致
代码是否符合制定的标准
所有的变量都被正确定义和使用
所有的注释都是准确的
所有的程序调用都使用了正确的参数个数
代码涉及到的常量是否易于修改
(
如使用配置、定义为类常量、使用专门的常量类等
)
代码中是否包含了交叉说明或数据字典,以描述程序是如何对变量和常量进行访问的
代码是否只有一个出口和一个入口(严重的异常处理除外)
代码所用的开发语言是否具有定义良好的语法和语义
是否代码避免了依赖于开发语言缺省提供的功能
代码是否无意中陷入了死循环
代码是否是否避免了无穷递归
代码是否采取措施避免运行时错误(如数组边界溢出、被零除、值越界、堆栈溢出等)
程序的每个功能是否都作为一个可辩识的代码块存在
循环是否只有一个入口
代码是否对每个程序进行了唯一标识
是否有一个交叉引用的框架可以用来在代码和开发文档之间相互对应
代码是否包括一个修订历史记录,记录中对代码的修改和原因都有记录
是否所有的安全功能都有标识
注释是否足够清晰的描述每个子程序
是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释
使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度
是否在定义命名规则时采用了便于记忆,反映类型等方法
每个变量都定义了合法的取值范围
代码中的算法是否符合开发文档中描述的数学模型
代码中的实现技术是否便于测试
一、
Code Review
简介
1
Code Review
的目的
2
Code Review的前提
3
Code Review
需要做什么
3
.
1
完整性检查(
Completeness
)
3.2一致性检查(Consistency)
3.3正确性检查(Correctness)
3
.
4
可修改性检查(
Modifiability
)
3.5可预测性检查(Predictability)
3.6健壮性检查(Robustness)
3.7结构性检查(Structuredness)
3.8可追溯性检查(Traceability)
3.9可理解性检查(Understandability)
3.10可验证性检查(Verifiability)
Code Review 理论与实战
最新推荐文章于 2025-08-06 22:06:43 发布