5

是什么

代码审查(英语:Code review)是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查。

——维基百科

为什么

  1. 提前发现代码中的潜在错误。当我们修改较大量的代码时,通常会遗漏一些细节。Code Review可以更好的帮助我们发现潜在的问题,同时以更低的成本进行修复。

  2. 分享知识。在Code Review中,知识的分享通常是双向的。我们可以通过阅读别人的代码或者其他人提的Comments学到东西。尤其是后者往往能够给我们带来更多的帮助。因为今天别人的错误,可能明天我们就会犯。其次,我们可以通过给出comments来向其他人分享我们的知识。如果这些知识并不完全正确,大家可以在讨论的过程中有更大的获益。

  3. 使整个组了解彼此的工作。人们可以通过review其他人的代码及时的了解到其他人的进度。

我的经验与教训
在这方面,我犯了几个错误:

  1. 在刚开始的时候,碰到别人给我做code review,对于很多comments我都是抱着很感谢的态度,但是对于一些comments则不以为然。但是其实,人家只是从不同的角度看待code。比如,某个地方有两种写法,人家建议你采用其中的某一种的原因并不是另外一种不行,而是为了保持一致的编码风格,或者遵循一些准则。这种时候,大可以走过去问问为什么,然后共同决定采取什么样的action。
  2. 不敢给别人提comments。很多时候,对于可以提出来,也可以不提的东西,我就放过了。但是其实,如果我提出来,可能会让自己和同事从讨论中学到更多东西,甚至我觉得的这个点是我的一个误区,可以通过这个机会纠正。
  3. 没有及时的做code review。随着团队转型,整体工作节奏不断提高,很多时候会专心在自己的事情上而忽视了code review。但是其实无论从个人还是团队的角度,code review的ROI(Return On Investment)都相当高。对于团队的好处不言而喻,对于个人而言,及时的code review往往能够帮我们树立更好的名声,至少在我们需要他人帮我们做code review的时候会更容易地获得帮助。

从过去一段时间的实际工作中,我觉得从code review的发起者这边,我们可以:

  1. 在别人可能有疑问的地方,把自己的想法写成注释。这样不止是这次code review的人,以后看你代码的人也能知道为什么。这个别人很有可能就是几个月之后的自己。

  2. 发code review之前,自己先完整的看一遍。把一些可能犯错的模式再检查一遍。

  3. 邀请最小必要集来进行code review。邀请的人越多,会take action的人越少……

从reviewer的角度来说,我们可以:

  1. 及时的完成code review
  2. 不要害怕给comments或者sign-off
  3. 除了看代码本身,还应该从其他人的comments中汲取精华
  4. 要肯定对方写的好的地方

武斌_小米
312 声望14 粉丝

这个人很懒,什么都没有留下