如何开始审查代码
我的工作目标之一是在编写代码的同时进行代码审查。我一直在尝试审查越来越多的代码,虽然这很有趣,但也带来了一系列挑战。我想谈谈我是如何做到这一点的,以及在我努力提高代码水平的过程中,哪些经验帮助了我。
-
这不是什么高深的学问。真的,真的不是。很长一段时间以来,我一直认为代码审查人员掌握着审查代码的全部背景信息,所以他们当然会觉得审查起来轻而易举。但事实并非如此,即使是规模较小的公司,他们的系统包含许多活动部件。没有人对系统的每个部分都了如指掌。记住这一点很重要。代码审查是一项技能,就像编写代码一样,可以学习。你做得越多,就越擅长。代码审查还能帮助你编写更好的代码,因为你知道需要注意哪些方面。不要因为害怕不了解你正在审查的代码的方方面面而退缩。
-
错误难免。总有疏漏,因为代码是人写的,代码是人审查的,我们天生就容易犯各种各样的错误。这没关系。你不能完美地完成一件事,并不意味着你根本就不应该做。如果你对某件事不确定,请别人再审一遍也完全没问题。多看看别人的真面目总是好的。
与此相关的是,要有无责备的文化,如果你在生产中搞砸了什么,别人不会追究你的责任。首要任务是诊断和修复问题,而不是追究责任(谁编写/审查了错误的代码)。犯错是可以的,重要的是从中吸取教训。我很幸运能在拥有这种文化的地方工作,所以感觉没那么吓人。😊
-
代码审查很容易导致双方产生误解和缺乏同理心。代码审查的核心是协作。作为一名审查者,务必提醒自己,你审查的是某人的代码,而不是对他们个人做出评判;同样重要的是,要记住,审查者所说的任何话都不是人身攻击。我认为这很大程度上取决于你团队乃至整个公司的工程文化。在发表评论之前牢记这一点,可以大大减少任何可能出现的摩擦。
一个非常简单的方法来做到这一点:
-
我想谈的另一点是代码审查过程中初级和高级之间的动态关系。对于职业生涯早期的人来说,为经验和/或背景比你丰富得多的人审查代码可能会非常令人畏惧。然而,这不应该阻止你审查他们的代码。你可以尝试以下方法:
- 跟踪现有拉取请求的评审:这是一种很好的方法,可以了解人们在评审代码时需要注意哪些事项,以及他们如何传达信息以及作者如何接收信息(如何传达对变更的反馈同样重要,甚至比你传达的内容更重要)
- 在审查更复杂的内容时,与其他工程师或作者配对:这可以让你实时提出问题并获得有关正在发生的事情的更多背景信息
-
要求提供更多背景信息是可以的。当你刚加入一个团队或领域,周围的人似乎都比你懂得多的时候,一开始可能会感到害怕。如果在查看了相关内容并做了研究之后,仍然无法理解某些事情,那么可以要求进一步澄清。
举个例子:
上周,我被要求审核一个我从未接触或使用过的服务的小型 PR,我的第一反应是请团队中更了解情况的人来做。然而,我把它当作一个学习的机会,并试图弄清楚这个提议的变更到底是怎么回事。看完之后,我发现虽然整个 PR 看起来合理,但有些地方不太对劲,于是我鼓起勇气,说我是这项服务的新手,并请求作者提供更多说明。你猜怎么着——他们非常乐意提供这些说明!拿到这些说明后,我就能批准他们的变更,同时还能获得以下几项:- 有了这次积极的经历后,我会更有信心寻求澄清
- 我更好地了解了该服务的功能,并且可以更轻松地查看相关更改
- 我们确定了如何改进我们正在查看的功能的文档,以便其他人可以更轻松地理解它
从各方面来看,这都是双赢的!🎉
自从我开始把代码审查看作一项可以学习并随着时间推移不断精进的技能后,我对代码审查的信心就大增。现在我不再那么害怕了,也期待着以后能做更多这样的审查。💪🏼
鏂囩珷鏉ユ簮锛�https://dev.to/shubheksha/how-to-start-reviewing-code-3jk6