据调查显示,代码审查工作有助于提高软件开发质量,然而许多开发者却不愿意在他们的团队中实施代码审查工作,本文主要分析了开发者为什么会抵制代码审查工作的原因以及为什么他们会有此想法,目的是为了引导开发者加入代码审查工作。
代码审查究竟是什么样的工作呢?通常情况下它是指否决质量的一种过程。大量统计数据表明代码审查极大的提高了软件质量以及降低了技术风险,不仅如此,它还降低了开发成本。
一起来看下代码审查工作所带来的好处:
如图所示,代码审查工作带来这么多的益处,那为什么还有一些开发团队拒绝这一做法呢?我们一起来分析下原因:
文化问题或许已成为一种巨大的障碍,大部分开发者会厌恶代码审查是因为他们无法忘记那些痛苦的审查会议,更槽糕的是,他们害怕因劣质代码而遭到管理 者的批评与指责(这个通常是管理者自身的原因,而不是坏代码)。代码审查工作有助于提升团队自身能力,我们应该持积极态度,而不是为了找机会来贬低同伴。
另一种可能性,当大家相互协作、积极互动时,管理者会误认为大家在“聊天”。敏捷性团队已经意识到快速创建软件工作需要积极的互动与协作。他们认为坚持代码审查工作,是通向成功的秘诀。
第三种可能性误解,开发者利用静态分析工具来查找bug,以致代码审查工作成为不必要性。然而事实并非如此,Capers Jones,一位软件质量度量领域的巨人,曾发表过一篇文章“结合视察、静态分析和测试能消除影响效率缺陷的95%”,这种三叉戟式的方法最能确保软件质量。
静态分析只是其中的一个分叉。
静态分析工具有着很大的局限性,包括无法辨认出一些疑似代码,比如,静态分析工具不具备标记功能,因为它无法确定一个函数名为getRandomNumber是否应该总返回相同的值(with a hat tip toXKCD)。
1
2
3
4
5
|
Int getRandomNumber()
{<
return 4;
}
|
也许代码审查最大障碍是恐惧。开发者担心错过最后期限,害怕分心,害怕投入过多时间。要知道,这些都是愚蠢的想法,代码审查的目的是在前端开发过程中最大限度的提高代码质量以及帮助你缩短开发周期。
最后,我认为,调用一个进程(代码审查工作)能够促进团队合作,提供指导且有助于技能的发展,鼓励开发者熟悉代码的基础部分,最终可达到提高整个软 件质量。当然,如果您想快速输入代码,可以考虑一些代码审查工具,前提是,你要确保该工具是轻量级并且有趣。一旦你习惯了使用该工具便有了依赖性(许多使 用代码审工具用户都这么认为)“我们无法想象没有编码工具的日子”,我想你会发现它们的价值所在。
无论如何,请记住,拒绝代码审查是不可取的。
英文出自:softwarequalityconnection
转载自 伯乐在线 http://blog.jobbole.com/16416/
分享到:
相关推荐
4. **理解开发者的角度**:认识到开发者可能对bug有抵触情绪,因为他们视软件为自己的作品。测试人员需解释修复bug的重要性,而不是简单地提交报告。 5. **明确沟通**:提供清晰的bug描述和修复建议,帮助开发者...
总的来说,建立一个科学规范的软件开发人员价值评价体系,不仅能够确保开发人员的努力得到公正的回报,还可以促进团队协作,提升软件项目的成功率。同时,它也是企业文化建设的一部分,有助于形成以能力和业绩为导向...
4. 最新信息:《Brand New Information》这一部分可能讨论了当前文献中关于代码审查的最新见解,以及不同研究对于审查过程的看法,从而提供对代码审查实证研究的深入了解。 5. 思科系统(Cisco Systems)的代码审查...
四、如何践行敏捷开发? 1. 团队成员需要克服人性的弱点,提高自己的协作和效率。 2. 团队成员需要互信和合作,消除彼此之间的斗争和抵触。 3. 需要制定合适的开发流程和方法,确保需求粒度得当,细节把控合理。 4....
- 代码检视:AI可以辅助开发人员进行代码审核,例如谷歌的Tricorder平台,它是一个程序分析平台,构建数据驱动的生态系统,能够展示分析结果在代码检视界面上,并集成大量代码检查工具。 - 代码修复和代码合成:在...
开发人员同样存在这个问题,他们可能热衷于讨论先进的技术框架,但在深入理解和掌握这些技术,如J2EE、EJB等,以及Java类库的应用上存在不足。这种对开发环境的不熟悉导致他们逃避文档编写,以掩饰自身知识的欠缺。 ...
类似的,当软件架构面临调整时,开发人员如果只是简单地堆砌代码来应对新需求,而不是从根本上进行优化和重构,最终只会导致系统变得更加臃肿和难以维护。 #### 3. 福兮祸之所伏 短期内看似有利的解决方案往往会在...
从技术上来说,我是从2020年4月11日开始的,但是到目前为止,我一直对真正开始一个项目感到非常抵触。 为了弥补丢失的时间和天数,我将进行补时,发布多天(如果没有的话),为此挑战增加一两天。 我将使用HTML,...
21. **代码审查**:通过代码审查减少对修改旧代码的抵触,提升代码质量。 22. **团队建设活动**:定期组织团队活动,提高团队士气和凝聚力。 23. **项目标识**:创建项目特有的标志或口号,增强团队归属感。 以上...
通过预防缺陷的发生,如代码审查和可测性检查,以及在开发过程中的正式检查,来提升软件质量。同时,测试人员需具备扎实的软件测试技能和对软件工程的深刻理解,参与软件生命周期的每一个阶段。 五、测试目的与质量...
《Scrum敏捷软件开发》是软件企业及其管理团队成功进行敏捷转型战略及实施的必备参考书,适合经理、开发人员、教练、ScrumMaster、产品负责人、分析师、团队领导或项目领导,是帮助他们成功完成项目,甚至造就敏捷...
4. **简化代码审查**:在谷歌,代码审查是开发流程中的关键环节。统一的编码规范使审查过程更加高效,审查者可以更专注于逻辑错误而不是格式问题。 5. **便于自动化工具的使用**:许多代码检查和格式化工具依赖于...
此外,开发人员可能会对模型驱动开发有所抵触,担心技能过时,但优秀的开发者应以解决问题为核心,而MDD恰恰能让他们专注于更高层次的设计问题。 MDD的成功实施依赖于强大的工具支持。这些工具必须能够有效地处理...
在本篇文章中,作者探讨了在《Java语言程序设计A》课程中,通过引入Rings游戏开发的方式,来提高教学效果并激发学生对程序设计的兴趣。以下是从文章中提炼出的详细知识点: 1. 传统教学方式的局限性: 文章开头指出...
总的来说,大数据环境下,对抵触申请的深入研究有助于重新定义和优化专利申请、审查和保护的流程,确保专利制度的公正性和有效性。通过大数据工具,抵触申请可以被更有效地利用于创造性判断,同时避免对新颖性和创造...
测试被看作是开发之后的一个补救环节,相较于开发工程师,测试人员似乎缺乏足够的技术含量和专业性认可。这种普遍的认知偏差,无疑给许多像我一样的新入行者带来了一定的职业困惑。 然而,随着时间的推移,我开始...
在IT行业中,尤其是在WEB开发领域,新产品开发是一项至关重要的任务,它涉及到市场调研、产品设计、用户反馈等多个环节。可口可乐新可乐的失败案例为我们提供了宝贵的经验教训。 1. **市场调研的重要性**:可口可乐...