我正在尝试以代码审查的价值出售我的组织。我曾在几个地方工作过。我已经看到它们用来确定样式选择和功能决策,并且我所看到的只是用于确保没有危险实现的直觉检查。我的直觉是,最有效的目的是在这两种选择之间。
那么,代码审查的目的是什么?
我正在尝试以代码审查的价值出售我的组织。我曾在几个地方工作过。我已经看到它们用来确定样式选择和功能决策,并且我所看到的只是用于确保没有危险实现的直觉检查。我的直觉是,最有效的目的是在这两种选择之间。
那么,代码审查的目的是什么?
Answers:
为什么要进行代码审查有多种原因:
有几种进行审核的业务案例:
如果您正在寻找有关同行评审的好处和实施策略的全面讨论,我建议您参阅Karl Wiegers撰写的《软件中的同行评审:实用指南》。
this
上下文,而不是.hasOwnProperty
在应有的位置使用它,等等,等等。所以-主要用于标准。在像C#这样的托管语言中,与动态语言相比,您当然会少一些原因。
代码审查是知识转移的工具。
当开发人员检查彼此的代码时,他们会熟悉系统的所有区域。这减少了项目的总线因素,并使开发人员在必须对未编写的系统的一部分进行维护时效率更高。
当初级程序员检查上级的代码时,初级程序员可以掌握一些技巧,否则这些技巧只能通过经验来学习。这也可以作为对过于复杂的代码的纠正。
全面的代码检查将需要经常检查各种文档。这是学习语言或API的好方法。
当高级程序员检查初级代码时,这是在问题转化为技术债务之前解决问题的机会。代码审查对于指导初级程序员可能是一个很好的设置。
代码审查与以下内容无关:
…发现错误。那就是测试的目的。代码审查仍然经常会发现一些问题。
…对样式问题进行挑剔–解决一种样式,并使用自动格式化程序强制实施。但是自动化工具无法检查很多事情。代码审查是确保代码充分记录或自我记录的好地方。
我个人从代码审查中获得的最有价值的东西是对其他人清楚该代码的信心。变量是否明确命名?每个代码块的目的是否合理明显?有任何含糊的注释可以澄清吗?注释中是否概述了边沿大小写和参数的有效值,并在代码中进行了检查?
我想添加两个未包含在其他好答案中的区域:
进行代码审查的一个重要原因是霍桑效应,在我们的案例中,霍桑效应转化为:如果您知道以后有人会看您的代码,那么您起初就更有可能编写出更好的代码。
另一个重要原因是需要更好的安全开发实践。只需查看Apple的goto失败(意外的重复代码行)或Heartbleed错误(输入验证中的基本失败),即可了解在安全的开发生命周期中进行适当的代码审查的重要性。