同行代码审查之我见

简介: 最近,我在CSDN上阅读了一篇叫做《同行代码审查实战分析》文章(http://www.csdn.net/article/2015-01-26/2823698-practical-lessons-in-peer-code-review)。

最近,我在CSDN上阅读了一篇叫做《同行代码审查实战分析》文章(http://www.csdn.net/article/2015-01-26/2823698-practical-lessons-in-peer-code-review)。这是一篇译文,作者认为作为专业的软件开发人员,持续提高代码质量是工作生涯不断追求的目标之一。无论我们有多么优秀,都离不开团队;而代码复查是个人与团队的润滑剂。

不管你是否接受,作为程序员,我们或多或少地都会和代码审查打交道,要不是自己的代码被审查,要不就是审查别人的代码。代码审查也可叫做代码评审,它是一种正式的针对程序发起的一项同行评审活动,由一组职责明确的主持人、作者、记录员、审查员等人员通过一系列明确定义的过程对代码进行静态检查来发现代码中的异常。代码评审的目的是提早发现代码缺陷、去除缺陷,以降低开发成本并提高产品质量。

 

一些借口

听起来,代码审查完全是为了产品的质量着想,大家理应积极支持才对。但“愿景是美好的,现实是残酷的”,在实际软件开发项目中,大家拒绝进行代码审查的借口是这样的:

审查人:

“我自己的工作都做不完,哪有时间来审查别人的代码?”

“老王脾气不好,给他指出了问题他会不高兴的。”

“这完全是走形式,上次给老李指出了代码中的问题,他也没有改。”

“把代码写这么好有啥用?项目组又没有根据代码质量来发奖金。”

 

被审查人:

“什么?小周水平还没有我高,他有啥资格来审查我的代码?”

“走开,我不想有人对我的代码指指点点的。”

“手上的工作都堆成山了,哪有时间去检查之前的代码?”

“完全是对我不信任,每次都拿我的代码来开刷。”

“不行,代码中的很多算法不能让别人知道,否则,他们就会很快学会并超过我的。”

 

代码审查在软件开发中的位置

在软件的开发阶段,开发人员编码完成之后,并不是马上就要提交程序版本,还需要对程序进行自检和自测,然后发起对代码的审查流程。等自检、测试和审查都通过之后,再提交程序版本。整个过程如下图所示。

 

如何做好同行代码审查

纵使有太多怨言,作为有追求的开发人员和团队,我们也要将代码审查彻底地执行下去。那么,如何做好同行代码审查呢?我认为可以从如下方面入手:

第一,项目组或产品线要明确规定所有的程序版本在提交之前,必须走同行代码审查的流程,同时要定期抽查代码审查的执行情况。对于做得好的团队和个人,要给予表扬;对于做得差的团队和个人,要提出批评并要求其及时改进。

第二,被审查人要持有开放心态,愿意分享自己的工作成果(代码和编程思想),并勇于承认自身的不足而加以改进。被审查人要视每一次代码审查为一个学习的机会,要利用别人的好的想法来提高自己。

第三,审查人要对事不对人,要懂得审查是为了发现代码的缺陷,而非人自身的问题。不要将代码审查活动变性为针对被审查人的人身攻击,这就背离了代码审查的初衷。

第四,项目组或产品线要定期对代码审查的结果进行总结,并以文档的形式保存起来,方便后期查阅。很多程序出现的问题都是相似的。在着手编写代码之前,如果能够了解前期类似软件程序中出现过的问题,那么大家就可以少走很多弯路。这也在无形中提高了工作效率和软件产品的质量。

 

总结

古语有云:三人行,则必有我师。个人的能力再强,也会有思维的局限,而代码审查就是为了破除这种局限,让自己编写的代码更加的完美。因此,作为专业的软件开发人员,我们一定要坚持推行代码的同行审查,让软件产品的质量更上一个台阶。


目录
相关文章
|
6月前
|
开发工具 git 开发者
面对躺平同事,我开发了一个插件治好了我的精神内耗⚡⚡⚡
面对躺平同事,我开发了一个插件治好了我的精神内耗⚡⚡⚡
|
6月前
|
开发者
|
测试技术 数据库
技术分享 | 什么是软件缺陷
技术分享 | 什么是软件缺陷
|
设计模式 Serverless 领域建模
实战经验 | 怎样才能提升代码质量?
提升代码质量的三个有效方法:领域建模、设计原则、设计模式。
实战经验 | 怎样才能提升代码质量?
|
安全 测试技术 程序员
艾伟也谈项目管理,找出软件开发过程中的BUG,你需要火眼金睛
  1)Bug大都出现在程序员的编码过程中。测试人员工作之一就是找出Bug,面对那些难以被人发现的Bug,测试人员通常会采取哪些手段?以您的经验,对广大测试人员有什么好的建议?对于开发人员,您有什么建议让他们减少Bug的产生?   之所以难以发现,大多是测试案例不够完整,检查测试案例是否全面覆盖了需求,等价类划得是不是够细有助于发现更多的问题。
1528 0
|
XML 开发工具 数据格式
|
测试技术 数据库
软件开发中的同行评审
对于任何一个软件公司来说,几乎在所有的软件项目中,都需要同行评审。一个人不管能力多强,看问题的角度总会受到限制,写出来的程序和文档等也不会是十全十美的。如果能够让懂行的同事给参阅一下,并提出他们认为正确的意见,那么势必会弥补单个开发人员思维的缺陷,并在一定程度上提高程序和产品的质量。
2198 0
|
测试技术 BI

热门文章

最新文章