代码评审

缘由初衷:

不管多么高大尚的设计最后还是需要通过编码来落地,都是通过一行一行代码实现的,所以落地的代码的审查就显的格外的重要了。

 

 

卡珀斯·琼斯(Capers Jones)分析了超过12,000个软件开发项目,其中使用正式代码审查的项目,发现潜在缺陷率约在60-65%之间,若是非正式的代码审查,发现潜在缺陷率不到50%。大部份的测试,发现的潜在缺陷率会在30%左右。

一般的代码审查速度约是一小时150行程序码,对于一些关键的软件(例如安全关键系统的嵌入式软件),一小时审查数百行程序码的审查速度太快,可能无法找到程序中的问题。代码审查一般可以找到及移除约65%的错误,最高可以到85%

也有研究针对代码审查找到的缺陷类型进行分析。代码审查找到的缺陷中,有75%是和计算机安全隐患有关。对于产品生命周期很长的软件公司而言,代码审查是很有效的工具。

 

 

代码审查我们关注的点:

1.需求,2.测试,3.性能,4.数据结构,5.SOLID原则

 

下面对我们关注的点进行分别阐述。

需求:

最起码的一点,写的代码需要满足需求里需要实现的功能事情。

 

测试:

把自己当成一个测试者,对于一些特殊字符,空,安全等的考虑是否程序健壮。

 

性能:

原则:a.能批处理的就批处理,b.是否用池(http连接池,线程池,数据库连接池)

c.能用长连接就长连接,d.多线程锁的是否合适等。

 

数据结构:

1,比如根据一个idlist里面找数据,每次都需要遍历,用list数据结构合适吗? 用map好像更合适更快。

2,需要对listsetstackqueue数据类型进行了解,并且需要了解并发情况。

不仅仅要了解通用的数据结构特性,还需要注意各种实现的优点和弱点,如果你使用的是 Java8,记住很多集合类都添加了新的方法。应该意识到这一点--你可以在一些复杂的代码中建议使用新的方法。

 

SOLID 原则:

 所有设计问题一样,在遵循这些原则之间找到平衡,并根据你的团队的喜好做出调整。 但是,如果在代码审查中看到复杂的代码,你可能会发现应用这些原则之一会找到一个更简单,更易于理解的解决方案。

你可能感兴趣的:(团队)