同行代码审查之我见

简介: 最近,我在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)。这是一篇译文,作者认为作为专业的软件开发人员,持续提高代码质量是工作生涯不断追求的目标之一。无论我们有多么优秀,都离不开团队;而代码复查是个人与团队的润滑剂。

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

 

一些借口

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

审查人:

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

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

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

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

 

被审查人:

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

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

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

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

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

 

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

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

 

如何做好同行代码审查

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

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

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

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

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

 

总结

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


目录
相关文章
|
7月前
|
开发工具 git 开发者
面对躺平同事,我开发了一个插件治好了我的精神内耗⚡⚡⚡
面对躺平同事,我开发了一个插件治好了我的精神内耗⚡⚡⚡
|
12月前
|
计算机视觉
现有同行评审太慢!PeerXiv新平台:5位审稿人1个月出结果,网友:早该有了
现有同行评审太慢!PeerXiv新平台:5位审稿人1个月出结果,网友:早该有了
|
Web App开发 缓存 前端开发
Yahoo 团队经验:网站性能优化的 34 条黄金法则
Yahoo 团队经验:网站性能优化的 34 条黄金法则
|
安全 开发者
开发者“请回答”!HN 热帖“当你对软件开发感到失望,该如何规划职业道路?”
开发者“请回答”!HN 热帖“当你对软件开发感到失望,该如何规划职业道路?”
164 0
开发者“请回答”!HN 热帖“当你对软件开发感到失望,该如何规划职业道路?”
|
测试技术 数据库
技术分享 | 什么是软件缺陷
技术分享 | 什么是软件缺陷
|
设计模式 Serverless 领域建模
实战经验 | 怎样才能提升代码质量?
提升代码质量的三个有效方法:领域建模、设计原则、设计模式。
实战经验 | 怎样才能提升代码质量?
经验分享:5个可以轻松实践的高效工作秘诀
工作产出 = 单位时间产能 × 有效工作时间,本篇文章介绍了如何提高工作效率,希望每个人都能找到属于自己的高效之路。
1085 0
经验分享:5个可以轻松实践的高效工作秘诀
|
开发者 程序员 测试技术

热门文章

最新文章