代码review检查项

      代码review是在研发过程中保证软件产品质量的一个重要环节,以下是最近整理的一些review检查项目:

 

 

 

1.         完整性检查

a)         代码是否完全实现了设计文档中提出的功能需求

b)         代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型

2.         一致性检查

a)         代码的逻辑是否符合设计文档

b)         代码中使用的格式、符号、结构等风格是否保持一致

3.         正确性检查

a)         代码是否符合制定的标准

b)         所有的变量都被正确定义和使用

c)         所有的注释都是准确的

4.         可修改性检查

a)         代码涉及到的常量是否易于修改 ( 如使用配置、定义为类常量、使用专门的常量类等 )

5.         可预测性检查

a)         代码是否具有定义良好的语法和语义

b)         代码是否无意中陷入了死循环

c)         代码是否是否避免了无穷递归

6.         健壮性检查

a)         代码是否采取措施避免运行时错误(什么空指针异常等,有很多是程序里面处理了,但打印日志时没有判断,不知道大家有没有犯过这样的错误哟)

7.         可理解性检查

a)         注释是否足够清晰的描述每个子程序 ,对于没用的代码注释是否删除

b)         是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释

c)         使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度

d)         是否在定义命名规则时采用了便于记忆,反映类型等方法

e)         循环嵌套是否太长太深?

8.         可验证性检查

a)         代码中的实现技术是否便于测试

9.         JAVA编码规范方面检查项

a)         检查项参照JAVA编码规范执行,见《JAVA编码规范》(此处可使用研发团队内部的开发规范)

10.     面向对象设计方面检查项

a)         类设计和抽象是否合适

b)         是否符合面向接口编程的思想

c)         是否采用合适的设计范式

11.     性能方面检查项

a)         在海量数据出现时,队列,,文件,在传输,upload等方面是否会出现问题,有无控制,如分配的内存块大小,队列长度等控制参数

b)         hashtable,vector等集合类数据结构的选择和设置是否合适,如正确设置capacity,load factor等参数,数据结构的是否是同步的

c)         有无滥用String对象的现象

d)         是否采用通用的线程池、对象池模块等cache技术以提高性能

e)         类的接口是否定义良好,如参数类型等,避免内部转换

f)          是否采用内存或硬盘缓冲机制以提高效率

g)         并发访问时的应对策略

h)         I/O方面是否使用了合适的类或采用良好的方法以提高性能(如减少序列化,使用buffer类封装流等)

i)           同步方法的使用是否得当,是否过度使用

j)           递归方法中的叠代次数是否合适,应该保证在合理的栈空间范围内

k)         如果调用了阻塞方法,是否考虑了保证性能的措施

l)           避免过度优化,对性能要求高的代码是否使用profile工具,如Jprobe

12.     资源泄漏处理方面检查项

a)         分配的内存是否释放,尤其在错误处理路径上(对非JAVA类)

b)         错误发生时是否所有的对象被释放,如数据库连接、Socket、文件等

c)         是否同一个对象被释放多次(对非JAVA类)

d)         代码是否保存准确的对象reference计数(对非JAVA类)

13.     线程安全方面检查项

a)         代码中所有的全局变量是否是线程安全的

b)         需要被多个线程访问的对象是否线程安全,检查有无通过同步方法保护

c)         同步对象上的锁是否按相同的顺序获得和释放以避免死锁,注意错误处理代码

d)         是否存在可能的死锁或是竞争,当用到多个锁时,避免出现类似情况:线程A获得锁1,然后锁2,线程B获得锁2,然后锁1

e)         在保证线程安全的同时,要注意避免过度使用同步,导致性能降低

14.     程序流程方面检查项

a)         循环结束条件是否准确

b)         是否避免了死循环的产生

c)         对循环的处理是否合适,如循环变量,局部对象,循环次数等能够考虑到性能方面的影响

15.     数据库处理方面

a)         数据库设计或SQL语句是否便于移植(注意和性能方面会存在冲突)

b)         数据库资源是否正常关闭和释放

c)         数据库访问模块是否正确封装,便于管理和提高性能

d)         是否采用合适的事务隔离级别

e)         是否采用存储过程以提高性能(某些情况下系统中不建议使用存储过程)

f)          是否采用PreparedStatement以提高性能

16.     通讯方面检查项

a)         socket通讯是否存在长期阻塞问题

b)         发送接收的数据流是否采用缓冲机制

c)         socket超时处理,异常处理

d)         数据传输的流量控制问题

17.     JAVA对象处理方面检查项

a)         对象生命周期的处理,是否对象的reference已经失效,能够设置为null,并被回收

b)         在对象的传值和传参方面有无问题,对象的clone方法使用是否过度

c)         是否大量经常的创建临时对象

d)         是否尽量使用局部对象(堆栈对象)

e)         在只需要对象reference的地方是否创建了新的对象实例

18.     异常处理方面检查项

a)         每次当方法返回时是否正确处理了异常,如最简单的处理,记录日志到日志文件中

b)         是否对数据的值和范围是否合法进行校验,包括采用断言(assertion

c)         在出错路径上是否所有的资源和内存都已经释放

d)         所有抛出的异常都得到正确的处理,特别是对子方法抛出的异常,在整个调用栈中必须能够被捕捉并处理

e)         当调用导致错误发生时,方法的调用者应该得到一个通知

f)          不要忘了对错误处理部分的代码进行测试,很多代码在正常情况下执行良好,而一旦出错,整个系统就崩溃了

19.     方法(函数)方面检查项

a)         方法的参数是否都做了校验

b)         数组类结构是否做了边界校验

c)         变量在使用前是否做了初始化

d)         返回堆对象的reference,不要返回栈对象的reference

e)         方法API是否被良好定义,即是否尽量面向接口编程,便于维护和重构

20.     安全方面检查项

a)         对命令行执行的代码,需要详细检查命令行参数

b)         WEB类程序检查是否对访问参数进行合法性验证

c)         重要信息的保存是否选用合适的加密算法

d)         通讯时考虑是否选用安全的通讯方式

21.     其他

a)         日志是否正常输出和控制

b)         配置信息如何获得,是否有硬编码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java代码review是为了确保代码的质量和可维护性,以及遵循最佳实践和编码规范。以下是一些常见的Java代码review检查: 1. 命名规范:检查变量、方法和类的命名是否符合驼峰命名法,并且能够描述其含义。 2. 代码注释:检查代码中是否有足够的注释,以解释代码的功能和实现。注释应该清晰、简洁,并且保持同步更新。 3. 代码格式化:检查代码的格式是否一致,例如缩进、空格和换行符的使用。 4. 异常处理:检查是否对可能出现的异常情况做了处理,例如使用try-catch语句来捕获异常,并给出适当的错误处理和日志记录。 5. 可读性:检查代码的可读性,确保代码清晰易懂。通过使用有意义的变量名、避免过长的方法和类,以及使用合适的代码结构来提高代码的可读性。 6. 避免硬编码:检查是否避免了硬编码,即在代码中直接使用固定的数值和字符串,应该使用常量或配置文件来管理这些值。 7. 安全性:检查是否对潜在的安全漏洞进行了预防和处理。例如,是否对用户输入进行了验证和过滤,并避免了SQL注入和跨站脚本攻击等。 8. 性能优化:检查是否有可能的性能优化点,例如避免重复计算和循环、选择合适的数据结构和算法等。 9. 代码复用:检查是否有可能的代码复用机会,例如使用继承、接口和设计模式来避免重复编写相似的代码。 10. 版本控制和代码管理:检查是否遵循正确的代码版本控制和管理,例如对代码进行适当的分支、提交和合并。 通过进行代码review,可以帮助发现并修复潜在的问题,提高代码质量和可维护性,并且促进团队之间的合作和知识共享。 ### 回答2: Java代码review检查Java程序的代码质量和规范的过程。在进行Java代码review时,我们需要关注以下几个主要的检查: 1. 代码风格:检查代码的缩进、命名规范、注释等,保证代码易读易懂,符合统一的编码风格。 2. 代码结构:检查代码的模块划分和类的组织结构是否合理,遵循面向对象的设计原则,并且模块之间的依赖关系是否清晰。 3. 可读性:检查代码的逻辑是否清晰,每个方法或函数是否只做一件事,避免过长的方法和复杂的嵌套结构。 4. 异常处理:检查代码中是否捕获和处理了可能出现的异常,避免程序崩溃或者出现不必要的错误。 5. 性能优化:检查代码是否存在性能问题,例如是否存在冗余的计算、不必要的内存占用等,优化代码性能提高程序运行效率。 6. 安全性:检查代码是否存在潜在的安全隐患,例如SQL注入、跨站脚本攻击等,增加代码的安全性。 7. 代码复用性:检查代码是否存在重复代码,避免代码冗余,提高代码复用性和维护性。 8. 单元测试:检查是否存在有效的单元测试覆盖率,保证代码的功能和逻辑正确性。 以上是常见的Java代码review检查,通过对这些检查的审核,可以帮助我们提高代码的质量、可维护性和安全性。 ### 回答3: Java代码review是一种对Java程序代码进行审查和评估的过程,旨在发现潜在的问题和改进程序质量。在进行Java代码review时需要关注以下几个检查: 1. 代码风格:检查代码是否符合约定的编码规范和风格,比如变量命名、缩进、注释等。遵循一致的代码风格可以提高代码的可读性和维护性。 2. 逻辑错误和bug:检查代码中是否存在逻辑错误和潜在的bug,例如条件判断是否正确、循环是否正确终止等。通过预先发现这些错误可以提高程序的可靠性和稳定性。 3. 性能问题:检查代码中是否存在性能瓶颈和低效的操作,比如循环嵌套过多、频繁的对象创建和销毁等。优化这些性能问题可以提高程序的执行效率。 4. 可维护性:检查代码是否易于维护和扩展,例如代码的模块化程度、接口设计是否合理等。具有良好的可维护性可以减少代码维护的难度和成本。 5. 安全性问题:检查代码是否存在安全漏洞和潜在的攻击风险,例如未经验证的输入、SQL注入、跨站脚本攻击等。确保代码的安全性可以保护用户的信息和系统的稳定性。 6. 单元测试覆盖率:检查代码是否具有足够的单元测试覆盖率,确保代码功能的正确性和稳定性。通过编写全面的单元测试可以提高代码的可靠性和可测试性。 7. 文档和注释:检查代码是否有清晰的文档和注释,包括方法和类的功能、输入输出等。良好的文档和注释可以提高代码的可读性和理解性。 通过进行Java代码review,可以发现和纠正代码中的问题,提高代码质量和可靠性,同时也可以加强团队之间的沟通和知识交流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值