代码走查检查表
评审日期:年月日
评审对象作者
评审人评审工作量
序号检查项评审意见走查前准备
1 得到一份解释代码的最新的设计文档,作为代码走
查的参考
2 代码都已提交,版本统一
程序结构组织
1 所有代码的结构清晰,具有良好的结构外观和整齐
2 所有的模块(函数和外部接口)定义清晰,模块分解
清楚
3 所有的功能需求都明显的覆盖
4 整个代码体系结构组合合理 ,分层清晰,代码之间功
能划分明确
5 所有的接口模块化,尽量减少接口之间的耦合度,修
改时尽量不影响其他代码模块
6 代码体系构架对空间和速度都已经进行考虑
7 数据库操作、IO操作等是否正确关闭资源。并且必
须在try -catch-finally 的finally中关闭。
8 一个业务如果进行多次数据库更新、添加、删除是否
正确添加事务。
9 进行逻辑与、逻辑或判断时是否使用短路与、短路或。
10 多处使用相同代码时,应定义唯一方法或变量以供使
用。
11 对象是否使用工厂获取。
12 导入类时,如果仅使用包中的几个类,应导入具体类,
而不是导入整个包。
13 数组声明的时候使用 int[] index ,而不要使用
int index[]。
14 代码实现的逻辑是否与详细设计描述的逻辑一致
15 检查类中是否有无效的代码或者是无用的代码。
16 不要使用System.out.print()以及输
出,需要进行日志处理
17 所有的文件名符合文件命名规范,见名知意
18 文件和模块分组清晰
19 较长的语句、表达式或参数(>80字符)要分成多行
书写,长表达式要在低优先级操作符处划分新行,操
作符放在新行之首,划分出的新行要进行适当的缩
进,使排版整齐,语句可读
20 每个程序文件都小于2000行
代码组织
1 数据库查询语句不要出现select *
2 对需要处理的字符串定义为StringBuffer ,常量定
义成静态的。
3 所有的变量名都小于32字符
4 有返回值的方法是否正确返回。Return语句应定义
js以6结尾的数字表达式在方法结尾处。
5 代码排版是否规范。
6 所有的行每行最多只有一句代码或一个表达式
7 复杂的表达式具备可读性,添加注释说明,表达式结
构清晰
8 续行缩进
9 括号在合适的位置
10 每个顺序的小块用空行隔开
11 注释和代码对齐或接续在代码之后
12 JSP必须不能有basepath。
13 JSP引用js全部要有path
14 JSP用的标签库是否都正确引用。
15 JSP写的js方法必须要有注释。
代码是否可读。
16 代码的逻辑是否有问题。
17 JSP页面尽量不要写过多的隐藏域。
18 JSP页面要注意排版、必要的注释、尽量减少使用
alert(),JS
和CSS除非必要就放到外部的单独文件中,在JSP
中引用。
19 实例变量是否使用private修饰并定义getter、
setter方法。
20 连接数据库的方法必须调用公用的方法。
21 异常要统一处理,异常处理方法是否符合项目组的约
定
22 在Action中不要过多的逻辑处理代码
23 不要出现魔鬼数字
24 检查可能出现空指针异常的地方,例如一个对象可能
为空,却调用它的方法或属性。
25 显示的文本无拼写和语法错误
26 所有的表达式使用了正确的操作符
函数组织
1 所有的函数名都小于64个字符
2 函数高内聚尽量只做一件事情,并做好
3 函数和其他代码松耦合
4 所有的参数都被使用
5 如果一个函数有返回值,在所有的出口都有返回
值
6 函数使用了最少数目的return语句
7 函数的参数个数小于7个
8 使用的算法说明清楚
9 函数检查了输入数据的合法性
10 函数异常处理清楚
11 函数设计尽量考虑将来的变化
12 调试信息存在于代码中并容易激活
13 递归定义了出口
14 递归局限于一个函数
15 对接口的调用必须要有判断传入的参数不能为空和
传入的参数正确。
数据类型与变量
1 数据类型存在数据类型解释
2 代码避免了重新定义预先定义的数据类型
3 每一个变量都初始化了
4 所有的变量都有最小的活动范围
5 所有的全局变量都描述清楚,如全局变量的作用
6 所有的变量都用到了
条件判断
1 If/else 使用正确
2 判断的次数降到最小
3 Boolean表达式表示清楚
4 最常用的情况最先判断,所有的情况都考虑
5 判断体足够短,以使得一次可以看清楚,不要有臃
肿的逻辑判断。
6 嵌套层次小于3次
7 判断条件使用引用时,应先判断其是否为null。
循环
1 不要出现三层以上的for循环。如有必要必须写清楚
注释
2 循环体不为空,循环体能够一次看清楚
3 循环之前做好初始化代码
4 当有明确的多次循环操作,使用For循环
5 当有不明确的多次循环操作,while循环被使用
6 代码中不存在无穷次循环
7 循环的头部进行循环控制
8 循环体内的循环变量起到指示作用。
9 所有的循环边界是否正确;
10 循环终止的条件清晰
11 循环条件、判断条件的边界值,数组、集合下标是否
越界。
注释
1 类、方法、判断条件、循环、主要变量是否添加注释。
2 类名、方法名、变量名的命名是否规范。
3 有返回值的方法是否正确返回。Return语句应定义
在方法结尾处。
4 源代码能够自我解释,每个人看到代码就能很快理
解
5 解释不过于简单,解释说明代码功能,准确描述代码
意义
6 所有的假设和限制进行注解
7 长的控制体结束,进行注解
8 对if和for、while等要进行必要的注释,并且方法
体都要用{ }包起来
9 代码的注释不能过于简单,要清晰明了。
10 缺陷修改阶段,提交代码的时候必须写清楚修改的功
能点和为什么要修改。
总括
1 无用的代码、注解已经删除
2 除非必要,不要在循环体内定义对象。“其他注意项
1 尽量减少同名的类(如java.sql.Date,
java.util.Date)
2 不要在循环中反复定义创建变量
for(){String str= (new String)v.next();}
3 可能重复执行的SQl语句尽量使用
preparedStatment
4 浮点型要精确比较时不要使用==,而如下进行
Math.abs(x-0.0)<Double.MIN.value*2
5 在sql中注意敏感的单词要回避使用
DB2 中id flag year month name state
Oracle 中number
Sybase中 count
6 代码与操作系统无关,不需要任何假设条件
7 所有的数组访问在它们的边界内
8 类型转换明确指明
文件修订记录
变更版本修订日期原因与修改情况描述
位置(页/段落
/章节号
修订人审核人
1.0 2012-5-22 新增all 孟洋
涛、郑
海焘
郑博
1.1 2012-5-28 根据各项目组评审出问题进
行修改
all 孟洋涛郑博
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论