我的前一个问题与如何在开发人员之间推进代码评审有关。在这里,我感兴趣的是如何执行代码评审会话,这样审阅者和审阅者都会对此感到舒服。
我以前做过一些代码审查,经历过非常不愉快的事情。我的前任经理会来找我们--临时的--告诉我们向他解释我们的代码。由于他对代码库不太熟悉,每当他要求我解释我的代码时,我会发现自己花了大量的时间来解释我的代码的最基本的结构。因此,每次审查都会持续太长时间,这一过程将使我们两人精疲力竭。
一旦我解释完我的工作,他就会继续提出问题。他提出的大多数问题本质上都是表面问题(例如,不要对这个代码块使用region,将变量名从xxx更改为yyy,尽管后者更没有意义,等等)。在尝试了几轮这个过程之后,我们发现评审过程并没有为我们两个人带来多大的好处,于是我们停止了。
您将如何使每个代码评审成为一种自然的、令人愉快的思想刺激、错误修复和相互学习的体验?此外,在代码签入之后,您多久进行一次代码评审?你是否每周分配一个固定的时间来做这件事?您在代码评审过程中遵循的指导原则是什么?
最后,动机:我到底想让我的团队退出代码评审吗?答:我希望我的团队成员能够互相负责对方的工作。这是主要动机。第二个动机:我希望所有代码都易于阅读/修改/扩展,这样就可以轻松地添加新特性。
发布于 2011-02-18 08:04:48
希望这能有所帮助。
发布于 2011-02-18 14:25:49
以下是一些似乎很有效的指导方针。
其中一些技巧来自SmartBear (我的雇主)在11个同行代码审查的最佳做法上发布的免费白皮书。
发布于 2011-02-18 15:38:46
我喜欢在大多数开源项目中实践的代码评审形式,这种方式类似于“至少有一个人在登陆之前查看了每个修补程序,补丁的作者必须解决他们建议的改进。”可以称之为“补丁审查”。
凯瑟琳·罗通多在这里有一篇很好的博客文章:http://riarockstars.com/2011/02/10/code-review-an-apple-a-day/
我认为补丁评审主要是一种通信机制。如果你不这么做,那么人们倾向于发明他们自己的编码风格,不知道他们是如何编写代码的,也不知道现有的代码可以重用,等等。此外,如果没有补丁审查,整个项目的架构会变得更加不连贯,因为人们不必与其他人同步。
您可能会认为修补程序评审是“异步对编程”。(与对编程的一个相似之处是,它有助于阻止单个人拥有强大的“代码所有权”。)
其次,修补程序评审往往会捕获相当数量的愚蠢错误,并且您可以强制执行规则,例如“编写单元测试”。
补丁评审中的一个重要因素是补丁必须是可审查的。通常,开发人员把提交修改控制看作是一种任意的快照机制,比如在编辑器中按下保存,或者将正在进行的工作推送到服务器,这样他们就可以从另一个位置到达它。这类补丁是不可审查的。要想被审查,补丁必须是一个连贯的变化,很好的解释,没有“噪音”在其中。显然,代码本身也需要可理解!
git最让人喜爱的地方之一是,它允许您在工作时执行快照/保存方法,然后返回并重新建立基、合并和拆分提交,以便它们成为一个可读的历史,这是有意义的。然后,您可以提交这些补丁供审查。
如果您进行了一段时间的修补程序评审,它会迫使人们编写代码,以便其他人可以读取它,这是非常巨大的。有些开发人员天生无法做到这一点,他们可能不需要在您的团队中。
补丁评审员应该始终拒绝批准对他们来说没有意义的补丁,或者无法阅读或缺少良好提交消息的修补程序。其想法是,修订控制日志和补丁应该讲述一个很好的、连贯的故事,这是有意义的。
https://softwareengineering.stackexchange.com/questions/49202
复制相似问题