[分析]为什么开发者会拒绝代码审查?(大图)

原创 2012年03月30日 10:19:57

据调查显示,代码审查工作有助于提高软件开发质量,然而许多开发者却不愿意在他们的团队中实施代码审查工作,本文主要分析了开发者为什么会抵制代码审查工作的原因以及为什么他们会有此想法,目的是为了引导开发者加入代码审查工作。

代码审查究竟是什么样的工作呢?通常情况下它是指否决质量的一种过程。大量统计数据表明代码审查极大的提高了软件质量以及降低了技术风险,不仅如此,它还降低了开发成本。

一起来看下代码审查工作所带来的好处:点击可查看大图

如图所示,代码审查工作带来这么多的益处,那为什么还有一些开发团队拒绝这一做法呢?我们一起来分析下原因:

文化问题或许已成为一种巨大的障碍,大部分开发者会厌恶代码审查是因为他们无法忘记那些痛苦的审查会议,更槽糕的是,他们害怕因劣质代码而遭到管理者的批评与指责(这个通常是管理者自身的原因,而不是坏代码)。代码审查工作有助于提升团队自身能力,我们应该持积极态度,而不是为了找机会来贬低同伴。

另一种可能性,当大家相互协作、积极互动时,管理者会误认为大家在“聊天”。敏捷性团队已经意识到快速创建软件工作需要积极的互动与协作。他们认为坚持代码审查工作,是通向成功的秘诀。

第三种可能性误解,开发者利用静态分析工具来查找bug,以致代码审查工作成为不必要性。然而事实并非如此,Capers Jones,一位软件质量度量领域的巨人,曾发表过一篇文章“结合视察、静态分析和测试能消除影响效率缺陷的95%”,这种三叉戟式的方法最能确保软件质量。

静态分析只是其中的一个分叉。

静态分析工具有着很大的局限性,包括无法辨认出一些疑似代码,比如,静态分析工具不具备标记功能,因为它无法确定一个函数名为getRandomNumber是否应该总返回相同的值(with a hat tip toXKCD)。

  1. Int getRandomNumber()  
  2. {  
  3. return 4; //chosen by fair dice roll.  
  4. //guaranteed to be random  
  5. }  

也许代码审查最大障碍是恐惧。开发者担心错过最后期限,害怕分心,害怕投入过多时间。要知道,这些都是愚蠢的想法,代码审查的目的是在前端开发过程中最大限度的提高代码质量以及帮助你缩短开发周期。

最后,我认为,调用一个进程(代码审查工作)能够促进团队合作,提供指导且有助于技能的发展,鼓励开发者熟悉代码的基础部分,最终可达到提高整个软件质量。当然,如果您想快速输入代码,可以考虑一些代码审查工具,前提是,你要确保该工具是轻量级并且有趣。一旦你习惯了使用该工具便有了依赖性(许多使用代码审工具用户都这么认为)“我们无法想象没有编码工具的日子”,我想你会发现它们的价值所在。

无论如何,请记住,拒绝代码审查是不可取的。


给 C# 开发者的代码审查清单

清单 1. 确保没有任何警告(warnings)。 2.如果先执行Code Analysis(启用所有Microsoft Rules)再消除所有警告就更好了。 3. 去掉所有没有用到的using...

给C#开发者的代码审查清单

这是为C#开发者准备的通用性代码审查清单,可以当做开发过程中的参考。这是为了确保在编码过程中,大部分通用编码指导原则都能注意到。对于新手和缺乏经验(0到3年工作经验)的开发者,参考这份清单编码会很帮助...

给 C# 开发者的代码审查清单

原文地址:http://blog.jobbole.com/46255/ 这是为C#开发者准备的通用性代码审查清单,可以当做开发过程中的参考。这是为了确保在编码过程中,大部分通用编码指导原则都能注意到...
  • bugDemo
  • bugDemo
  • 2013年08月23日 17:21
  • 514

给 C# 开发者的代码审查清单

清单 1. 确保没有任何警告(warnings)。 2.如果先执行Code Analysis(启用所有Microsoft Rules)再消除所有警告就更好了。 3. 去掉所有没有用到...

给 C# 开发者的代码审查清单

清单 1.确保没有任何警告(warnings)。 2.如果先执行Code Analysis(启用所有Microsoft Rules)再消除所有警告就更好了。 3.去掉所有没有用到的usings。...

给C#开发者代码审查清单

这是为 C# 开发者准备的通用性代码审查清单,可以当做开发过程中的参考。这是为了确保在编码过程中,大部分通用编码指导原则都能注意到。对于新手和缺乏经验(0 到 3 年工作经验)的开发者,参考这份清单编...

给C#开发者的代码审查清单

这是为C#开发者准备的通用性代码审查清单,可以当做开发过程中的参考。这是为了确保在编码过程中,大部分通用编码指导原则都能注意到。对于新手和缺乏经验(0到3年工作经验)的开发者,参考这份清单编码会很帮助...

给 C# 开发者的代码审查清单

这是为C#开发者准备的通用性代码审查清单,可以当做开发过程中的参考。这是为了确保在编码过程中,大部分通用编码指导原则都能注意到。对于新手和缺乏经验(0到3年工作经验)的开发者,参考这份清单编码会很帮助...
  • sdgxboy
  • sdgxboy
  • 2014年06月18日 08:48
  • 603

给 C# 开发者的代码审查清单

本文由 伯乐在线 - 伯乐在线读者 翻译自 Mohammed Hameed。转载请参见文章末尾处的要求。 【感谢@L就是L 的热心翻译。如果其他朋友也有不错的原创或译文,可以...

敏捷开发“松结对编程”实践之四:日常工作篇(大型研发团队,学习型团队,139团队,师徒制度,检查点,代码审查,每日立会) .

本文是“松结对编程”系列的第四篇。(之一,之二,之三,之四,之五,之六,之七,之八,此系列之九及之后文章请见栏目总目录。) 团队中常见的一种情况计划、估算、设计的时候大家还在一起,但编程的时候就会分...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[分析]为什么开发者会拒绝代码审查?(大图)
举报原因:
原因补充:

(最多只允许输入30个字)