您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 代码评审表――Java
编号类别项目总分基础51234567891011基础5123456基础5123基础5123基础5JAVA代码评审表是否存在容易混淆的相似的变量和属性名?变量和属性是否书写正确?变量和属性是否被正确的初始化?非局部变量是否能用局部变量替换?所有的for循环的控制变量是否都在循环顶部被声明?是否有应该命名为常量的文字常量?部门名称项目名称模块列表类列表问题一、变量,属性和常量声明缺陷变量和常量的命名是否与约定保持一致?每个方法的参数值在使用之前是否都作了检查?对于每一个方法,它是否都返回了正确的值?每种方法是否都有正确的访问限制符(private,protected,public)?接口方法的声明是否正确的表达语义?是否正确的给出返回值或抛出异常?三、类定义缺陷静态方法是否应该为非静态(反之亦然)?变量和属性是否可以用常量替换?属性是否可以用本地变量?所有的属性是否都有正确的访问限制符(private,protected,public)?是否有静态属性应该是非静态(反之亦然)?二、方法定义缺陷方法名的描述方法是否与命名约定一致?是否存在大内存对象的频繁创建或引用?五、计算/数值缺陷每一个类是否都有正确的构造函数?在子类中是否有应该放到父类中的通用成员?类的继承层次是否能被简化?四、数据引用缺陷对于每一个数组引用,下标值是否在定义的范围内?对于对象和数组引用,是否组确定其值应为非空?约定:总分100=基础项50分+重点项50分。附加分上限10分。针对每一大项评分,细项作为评分的参考依据。大项评分小于该项总分的60%或大于该项总分的80%必须给出说明。如该大项整体不适用,评分栏填写“/”。细项中,带删除线的项可忽略,加粗项为重点。12345678基础51234567891011基础51234567基础512345678重点101是否存在不同类型数据之间的混合计算?在计算中是否存在上溢或下溢的可能?关于数值计算的顺序和优先级的假设是否正确?代码是否避免了对浮点型数值的相等比较操作?六、流程控制缺陷被除数是否做了零值测试和噪音测试?是否用了括号来避免模糊不清?数值类型声明以及精度控制是否合理?数值计算是否存在溢出的可能性?八、注释缺陷文件在被使用之前是否都被打开?输入对象的属性是否与使用的文件一致?在操作文件时是否判断了文件存在与否?文件在被使用之后是否都被关闭?网络连接是否合理池化(反之亦然)?网络程序是否有合理的异常处理以及方法的异常声明?代码中的注释是否充分?代码中的注释是否过多?九、程序结构代码是否正确完整的实现了设计?每一个方法,类和文件是否都有适当的头注释?变量和常量的声明是否都有注释?每个类和方法的潜在行为是否都有用简易的语言进行解释?方法和类的头注释是否和它们的功能保持一致?注释和代码是否保持一致?注释对于理解代码是否有帮助?网络连接是否正常关闭?循环和分支的嵌套是否过深?是否正确?是否有if嵌套可以转换程switch嵌套?空控制条件是否都正确,并加上括号及批注?所有的异常是否都得到了正确的处理?每一个方法是否都能结束?七、输入输出缺陷对于每一个循环:是否选用了最佳的循环结构?所有的循环是否都能结束?如果一个循环有多个出口,是否每个出口都有必要并且得到正确处理?switch声明是否都有default条件?是否所有的case-switch-break对应关系都已更正并加上批注?是否namedbreak叙述都跳到正确的地方?2345678910基础5123重点101234基础512重点101234568重点10123456789代码是否符合相关的编码标准?代码结构是否适当,风格和格式是否保持一致?十二、存储器使用缺陷数组是否过大?是否有过于复杂的模块需要重新构造或拆分成多个程序?十、布局和封包缺陷代码布局格式和缩排标准是否前后一致?对于每一个方法,它的代码量是否都不超过规定行数?对于每一个编译模块,它的代码量是否都不超过规定行数?十一、模块性缺陷(MO)代码中有没有被调用的或无用的程序,或没有被执行的代码,或者测试代码?代码中是否还有多余的脏程序或测试代码?是否存在能被调用外部复用组件或库函数替代的代码?有没有能被压缩成简单程序的程序块或重复的代码?内存及其它资源是否被有效利用?数字和字符串常量是否用符号代替?计算是否能被移到循环之外?是否在循环内频繁创建对象?在循环内是否有不需要的判断?短循环是否可以取消?对同一个数据进行操作的两个循环是否可以合并成一个?长连接和短连接是否使用得当?分配的内存空间是否都被释放?对于服务调用是否有超时设计或异常处理?在程序结束的时候所有的文件或服务是否都保持了正确的状态?是否可以通过对数值进行一次计算并将结果保存来减少对它重新计算带来的消耗?每一个计算出并保存了的结果是否都被应用?十四、性能缺陷(PE)是否有更好的数据结构和算法可以采用?测试安排是否合理,使易于通过的且代价低廉的测试优先于代价较高且通过频率较低的测试?数组和对象不再使用之后,它们的引用是否被赋为空值?十三、防御性编程索引和下标是否经过了数组,记录或文件的边界测试是否验证了导入的数据或输入的参数的正确性和完整性?所有的输出变量是否都被赋值?在每个声明中数据是否被正确操作?模块(方法,类)之间是否具有低偶合性?每个模块(方法,类)自身是否具有高聚合性?是否存在重复的代码,它的功能可以通过调用其它方法实现?Java类库的使用是否合理?重点101234附加101234评论是否存在sql注入?是否存在跨站脚本攻击?重大历史遗留的解决以及技术突破是否遵循开闭原则?是否合理使用设计模式?总分十五、程序安全异常页是否泄漏数据库字段等存在安全问题的信息?cookie中是否存在导致账号被盗等安全问题的信息?业务开发的可扩展性、复用性以及组件化十六、架构设计/程序设计被检查者检查者日期得分说明JAVA代码评审表是否存在容易混淆的相似的变量和属性名?变量和属性是否书写正确?变量和属性是否被正确的初始化?非局部变量是否能用局部变量替换?所有的for循环的控制变量是否都在循环顶部被声明?是否有应该命名为常量的文字常量?变量和常量的命名是否与约定保持一致?每个方法的参数值在使用之前是否都作了检查?对于每一个方法,它是否都返回了正确的值?每种方法是否都有正确的访问限制符(private,protected,public)?接口方法的声明是否正确的表达语义?是否正确的给出返回值或抛出异常?静态方法是否应该为非静态(反之亦然)?变量和属性是否可以用常量替换?属性是否可以用本地变量?所有的属性是否都有正确的访问限制符(private,protected,public)?是否有静态属性应该是非静态(反之亦然)?方法名的描述方法是否与命名约定一致?是否存在大内存对象的频繁创建或引用?每一个类是否都有正确的构造函数?在子类中是否有应该放到父类中的通用成员?类的继承层次是否能被简化?对于每一个数组引用,下标值是否在定义的范围内?对于对象和数组引用,是否组确定其值应为非空?约定:总分100=基础项50分+重点项50分。附加分上限10分。针对每一大项评分,细项作为评分的参考依据。大项评分小于该项总分的60%或大于该项总分的80%必须给出说明。如该大项整体不适用,评分栏填写“/”。细项中,带删除线的项可忽略,加粗项为重点。是否存在不同类型数据之间的混合计算?在计算中是否存在上溢或下溢的可能?关于数值计算的顺序和优先级的假设是否正确?代码是否避免了对浮点型数值的相等比较操作?被除数是否做了零值测试和噪音测试?是否用了括号来避免模糊不清?数值类型声明以及精度控制是否合理?数值计算是否存在溢出的可能性?文件在被使用之前是否都被打开?输入对象的属性是否与使用的文件一致?在操作文件时是否判断了文件存在与否?文件在被使用之后是否都被关闭?网络连接是否合理池化(反之亦然)?网络程序是否有合理的异常处理以及方法的异常声明?代码中的注释是否充分?代码中的注释是否过多?代码是否正确完整的实现了设计?每一个方法,类和文件是否都有适当的头注释?变量和常量的声明是否都有注释?每个类和方法的潜在行为是否都有用简易的语言进行解释?方法和类的头注释是否和它们的功能保持一致?注释和代码是否保持一致?注释对于理解代码是否有帮助?网络连接是否正常关闭?循环和分支的嵌套是否过深?是否正确?是否有if嵌套可以转换程switch嵌套?空控制条件是否都正确,并加上括号及批注?所有的异常是否都得到了正确的处理?每一个方法是否都能结束?对于每一个循环:是否选用了最佳的循环结构?所有的循环是否都能结束?如果一个循环有多个出口,是否每个出口都有必要并且得到正确处理?switch声明是否都有default条件?是否所有的case-switch-break对应关系都已更正并加上批注?是否namedbreak叙述都跳到正确的地方?代码是否符合相关的编码标准?代码结构是否适当,风格和格式是否保持一致?数组是否过大?是否有过于复杂的模块需要重新构造或拆分成多个程序?代码布局格式和缩排标准是否前后一致?对于每一个方法,它的代码量是否都不超过规定行数?对于每一个编译模块,它的代码量是否都不超过规定行数?代码中有没有被调用的或无用的程序,或没有被执行的代码,或者测试代码?代码中是否还有多余的脏程序或测试代码?是否存在能被调用外部复用组件或库函数替代的代码?有没有能被压缩成简单程序的程序块或重复的代码?内存及其它资源是否被有效利用?数字和字符串常量是否用符号代替?计算是否能被移到循环之外?是否在循环内频繁创建对象?在循环内是否有不需要的判断?短循环是否可以取消?对同一个数据进行操作的两个循环是否可以合并成一个?长连接和短连接是否使用得当?分配的内存空间是否都被释放?对于服务调用是否有超时设计或异常处理?在程序结束的时候所有的文件或服务是否都保持了正确的状态?是否可以通过对数值进行一次计算并将结果保存来减少对它重新计算带来的消耗?每一个计算出并保存了的结果是否都被应用?是否有更好的数据结构和算法可以采用?测试安排是否合理,使易于通过的且代价低廉的测试优先于代价较高且通过频率较低的测试?数组和对象不再使用之后,它们的引用是否被赋为空值?索引和下标是否经过了数组,记录或文件的边界测试是否验证了导入的数据或输入的参数的正确性和完整性?所有的输出变量是否都被赋值?在每个声明中数据是否被正确操作?模块(方法,类)之间是否具有低偶合性?每个模块(方法,类)自身是否具有高聚合性?是否存在重复的代码,它的功能可以通过调用其它方法实现?Java类库的使用是否合理?等级是否存在sql注入?是否存在跨站脚本攻击?重大历史遗留的解决以及技术突破是否遵循开闭原则?是否合理使用设计模式?异常页是否泄漏数据库字段等存在安全问题的信息?cookie中是否存在导致账号被盗等安全问题的信息?业务开发的可扩展性、复用性以及组件化
本文标题:代码评审表――Java
链接地址:https://www.777doc.com/doc-3361948 .html