我的老板说我们应该找到一种方法来扩展我们公司的代码评审。就像现在一样,我们有大约16名软件开发人员分散在4个不同的团队/团队中,但很快公司将达成一项协议,这将使公司规模翻一番。有了它,我们最终会有几十个开发人员。他建议我检查一下自动化工具,比如这个:https://www.freecodecamp.org/news/how-to-automate-code-reviews-on-github-41be46250712/,但是我特别不喜欢自动化工具,因为:
我们使用Python (主要是)、Lua和Go,以及开发人员(通常在公司)工作,尽管每个人都认为代码评审有价值,但大多数人只是执行“快速视图”,比如LGTM,而2或3(包括我在内)则喜欢唠叨可能出现的bug和改进。那么,你们建议如何扩展代码评审呢?微软、谷歌、亚马逊、甲骨文等大型公司如何与数十/数百名开发人员进行代码评审,让人们真正关心代码评审?创建一个像游戏平台/领导委员会这样的东西是否值得(也许有奖励)?
发布于 2020-09-27 22:53:55
首先要接受的是,您不能完全自动化代码评审。但是,您可以在不同程度上自动化评审的特定方面,以减轻对审核人员的压力,并让他们专注于无法自动化的事情。使用链接找到(并希望纠正)风格问题。静态分析工具可以突出显示安全性或性能问题、未使用的代码和其他潜在问题。根据工具的不同,开发人员可以在打开代码评审之前在本地运行这些工具,或者可以将它们合并到您的构建过程中,使代码审阅者可以使用报告,甚至导致生成失败。取决于您的技术,可能会有各种解决方案,其中一些是免费的开源软件,另一些则是商业产品。
一旦实现了自动化,您的人就可以专注于系统的体系结构和设计以及代码的可读性等问题。这也将需要文化上的转变。快速检查可能还不够。尽管工具可以找到一些问题,但人类仍然需要花费大量的时间阅读代码并提出问题。我发现在评审中使用更高质量的代码是有帮助的,这无助于改变人们的态度。每个人都应该对团队和组织的代码评审的预期结果或目的保持一致。
发布于 2020-09-28 03:10:13
大多数情况下,你通过让每个人对他们所写的每个拉请求检查一个拉请求来进行缩放。自动化工具并不能取代人工评审者,但是他们让人类关注更重要的事情。
如果你是一个在评论中经常有更多话要说的评论者,你可以通过评论的级别来衡量。我对我自己的团队(目前有3名其他开发人员)进行了全面的回顾。对于其他团队编写的拉请求,我查看所有的标题,但任何与例行的标题,我忽略了。一些标题值得快速浏览拉请求,而一些快速浏览则需要更深入的回顾。任何我没有深入复习的事情,我都会留给别人去批准。
这个系统让我每天在自己的团队之外有一两次评论。除此之外,是的,偶尔挑剔的事情会被错过,但大多数情况下,你是在判断你的时间花在哪里。
发布于 2020-09-28 20:53:29
问问自己这个问题--代码审查阶段的意义是什么?
以下是一些可能的答案..。
简而言之,如果公司愿意花费工程上的精力来集成工具,那么在代码评审中的人工工作量就可以减少。
https://softwareengineering.stackexchange.com/questions/416304
复制相似问题