是什么
代码审查(英语:Code review)是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查。
——维基百科
为什么
提前发现代码中的潜在错误。当我们修改较大量的代码时,通常会遗漏一些细节。Code Review可以更好的帮助我们发现潜在的问题,同时以更低的成本进行修复。
分享知识。在Code Review中,知识的分享通常是双向的。我们可以通过阅读别人的代码或者其他人提的Comments学到东西。尤其是后者往往能够给我们带来更多的帮助。因为今天别人的错误,可能明天我们就会犯。其次,我们可以通过给出comments来向其他人分享我们的知识。如果这些知识并不完全正确,大家可以在讨论的过程中有更大的获益。
使整个组了解彼此的工作。人们可以通过review其他人的代码及时的了解到其他人的进度。
我的经验与教训
在这方面,我犯了几个错误:
- 在刚开始的时候,碰到别人给我做code review,对于很多comments我都是抱着很感谢的态度,但是对于一些comments则不以为然。但是其实,人家只是从不同的角度看待code。比如,某个地方有两种写法,人家建议你采用其中的某一种的原因并不是另外一种不行,而是为了保持一致的编码风格,或者遵循一些准则。这种时候,大可以走过去问问为什么,然后共同决定采取什么样的action。
- 不敢给别人提comments。很多时候,对于可以提出来,也可以不提的东西,我就放过了。但是其实,如果我提出来,可能会让自己和同事从讨论中学到更多东西,甚至我觉得的这个点是我的一个误区,可以通过这个机会纠正。
- 没有及时的做code review。随着团队转型,整体工作节奏不断提高,很多时候会专心在自己的事情上而忽视了code review。但是其实无论从个人还是团队的角度,code review的ROI(Return On Investment)都相当高。对于团队的好处不言而喻,对于个人而言,及时的code review往往能够帮我们树立更好的名声,至少在我们需要他人帮我们做code review的时候会更容易地获得帮助。
从过去一段时间的实际工作中,我觉得从code review的发起者这边,我们可以:
在别人可能有疑问的地方,把自己的想法写成注释。这样不止是这次code review的人,以后看你代码的人也能知道为什么。这个别人很有可能就是几个月之后的自己。
发code review之前,自己先完整的看一遍。把一些可能犯错的模式再检查一遍。
邀请最小必要集来进行code review。邀请的人越多,会take action的人越少……
从reviewer的角度来说,我们可以:
- 及时的完成code review
- 不要害怕给comments或者sign-off
- 除了看代码本身,还应该从其他人的comments中汲取精华
- 要肯定对方写的好的地方
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。