中星首页 中星动态 网上报名 免费试听

客服热线:4000-876-888 联系我们 网站地图

这代码太恐怖!代码审查都查什么?

发布时间: 2017-09-30 来源:中星IT培训 点击:
顾名思义,代码审查就是审查一些代码,以确保其能够正常工作,并尽可能改善其性能。


谁都希望自己写过的代码从未有bug,然事与愿违,代码审查的意义也在于此。但代码审查的好处不只如此。

  代码审查有必要吗?
 

1

降低风险

毕竟百密一疏,有专人复核我们的工作并不是无关痛痒的,这能降低被忽视的错误所带来的风险。

 

2

显著提高代码质量

于自我而言,利用代码审查激活个体“能动性"。软件开发是非常有创造性的工作,开发者都有强烈的自我驱动性和自我实现的要求。让开发者知道他写的任何代码都可能被其他人阅读和审察,可以促使开发者集中注意力,尤其是避免将质量糟糕,乃至有低级错误的代码提交给同伴审查。

 

在一个团队里,每个人都有自己的背景和特长,而团队始终需要进步。因此总有人可能提出更聪明的解决方案,更合适的设计模式,或者能降低复杂性或提高性能的方法,从而使代码更高效。
 

3

成员能力提升

通过合作,每个人都可以相互学习并取得进步。提交代码者很有可能从该工作中得到反馈,并意识到可能存在的问题和需要改进的部分;而审查者也可以通过阅读他人代码学到新的东西,并找出适用于他们自己的工作方案。

 

4

熟悉项目

当一个团队在做一个项目时,想要每个开发人员致力于应用的每个部分,这是极不可能的。有时候,会出现这种情况:在某一段时间,一个开发人员正为项目的大部分模块辛苦地工作,而另一个人则完全在做别的东西。

 

因此,代码审查有助于人们了解其他人所写,但以后可能会需要自己来维护的那部分代码。它促进了代码库知识在团队中的传播,也有可能加快未来的发展。

  审查优化建议
 

1

提交代码前先自查

 

这次自我修正形式的审查除了检查代码的正确性以外,还应有如下三个方面:

 

(1)对代码添加注释,说明本次修改背后的原因,方便其他人进行审查。

(2)修正编码风格,尤其是一些关键数据结构和方法的命名,提高代码的可读性。

(3)从全局审视设计,是否完整的考虑了所有情景。在实现之前做的设计如果存在考虑不周的情况,这个阶段可以很好的进行补救。
 

2

带着问题出发

审查者利用自身的经验先思考可能会碰到的问题,然后通过审查工作验证这些问题是否已经解决。使用这个技巧,可以让审查者有代入感,真正的沉浸入代码中,提高效率。

 

PS:如果你想要提供有用的反馈,就很有必要理解代码的背景。离开了代码背景,我们通常也只能进行语法检查,这时候你就变成了“人工审查器”,这远远不够。

 

3

控制审查数量

根据smartbear在思科所作的调查,每次审查200行-400行的代码效果最好。每次试图审查的代码过多,发现问题的能力就会下降。
 

实践发现,随着开发平台和开发语言的不同,最优的代码审查量有所不同。但是限制每次审查的数量确实非常必要,因为这个过程是高强度的脑力密集型活动。时间一长,代码在审查者眼里只是字母,无任何逻辑联系,自然不会有太多的产出。

 

4

原作者确认

如果在审查中发现问题,务必由原作者进行确认。这样做有两个目的:

 

(1)确认问题确实存在,保证问题被解决。

(2)让原作者了解问题和不足帮助其成长。

 

有些时候为了追求效率,有经验的审查者更倾向于直接修改代码乃至重构所有代码,但这样不利于提高团队效率,并且会增加因为重构引入新bug的几率,通常情况下我们不予鼓励。

 

5

做笔记提高问题发现率

成员在编码的时候应做随手记录,包括在代码中用注释的方式表示,或者记录简单的个人文档,好处是:

 

(1)避免遗漏。在编码时将考虑到的任何问题都记录下来,在审查阶段再次检查这些问题都确认解决。

(2)根据研究,每个人都习惯犯一些重复性的错误。这类问题在编码是记录下来,可以在审查的时候用作检查的依据。

(3)在反复记录笔记并在审查中发现类似的问题后,该类问题出现率会显著下降。

常用的代码审查工具
 

“工欲善其事,必先利其器”。代码审查工具其实有很多,一般工程师会根据自己的习惯和爱好来选择。小编在此盘点5个,任君挑选:

 

1、Code Reviewer

CodeReviewer是一款免费的、简单的又易于部署和使用的代码审查工具,由SmartBear开发——也是Collaborator的发明者,业界第一家推出商用代码审查工具的公司。

 

2、SmartBear

SmartBear是一个有助于团队通过共同的开发、测试和管理工作以便能生产出高质量代码的代码审查工具。

 

3、Crucible

Crucible是另一款超级受开发人员欢迎的代码审查工具,可以审查代码、讨论修改,通过Crucible灵敏的审阅流程来确定缺陷。

 

4、CodeStriker

CodeStriker是一个免费&开源的Web应用程序,可以帮助开发人员基于Web的代码审查。

5、Codebrag

 

Codebrag是一款简单轻巧,提高进程作为的代码审查工具。它能帮助我们解决非阻塞代码审查、智能邮件通知、联机注释等。