返回

代码评审(CR)实践指南:挖掘代码评审的潜能

见解分享

代码评审(CR)实践指南:挖掘代码评审的潜能

**代码评审的优越性已经无需多言,可尽管许多团队不辞辛苦的将代码评审作为一项标准的实践,但在代码评审过程中,却总是如履薄冰,小心翼翼,生怕一不小心就得罪了团队的其他成员,从而破坏团队合作关系。究其原因,就是源于代码评审的背后“政治化”倾向,而这又导致了另一个问题:很多团队在实施代码评审实践时,未能达到预期的收益。

本篇文章作为代码评审(CR)实践指南,将帮助读者了解如何通过代码评审实践来挖掘团队的潜能,避开代码评审过程中的政治倾向和陷阱。**

面面俱到,打造极致的代码评审体验

CR的最终目标始终是评审出优质的代码,所以,目标是我们的一切,只有洞悉了代码评审的最终目标是什么,才能游刃有余地确定实践中的各种“度”,包括评审的严谨度和深刻度等。

第一准则:严谨评审

评审要严谨,这一条相信不会有人反对,那么何谓“严谨”?严谨,是指对代码质量的把控一定要严谨,不过,这并不意味着我们非要采取十倍甚至百倍的放大部分,来要求评审者对每一行代码进行评审,没有必要,我们只需要根据代码的不同模块、重要程度等,来区别对待,重要的地方就要严格把关,不重要的的地方,适当放宽要求即可,做到严谨不是目的,评审出优质的代码才是,抓住本质我们才能游刃有余。

第二准则:深刻评审

深刻评审,不是要求评审者像“考古学家”一样,对代码的来龙去脉了解的一清二楚,也不是要求评审者对代码的各个方面都要过问一遍,而是指对代码的结构和逻辑进行深度剖析,在洞悉代码的设计意图和算法的基础上,结合自己的经验对代码的质量进行把关,在保证代码质量的前提下,再提出优化建议。

颠覆传统,重新定义代码评审

评审者是整个CR环节的主角,让评审者坐在最显眼的舞台上,让大家看到,听到评审者的声音,这本身就是一次观念的转变,也是代码评审意识的升华,既有利于评审者对代码质量的管控,也有利于评审者对自己能力的提升。

评审者职责强化

评审者在CR环节中,不仅拥有神圣不可侵犯的评审权力,而且评审者拥有要求开发者修改代码的权力,甚至拥有要求开发者重写的权力,同时,评审者还拥有推动并监督开发者对代码修改的权力。

评审者素养提升

评审者的素质对于CR实践的成功至关重要,首先,评审者需要提升自己的专业素养,也就是说,评审者需要有足够的知识和经验,其次,评审者需要加强自己的沟通能力和管理能力,同时,为了让评审者能够在评审过程中拥有更大的话语权,可以赋予评审者对开发者的绩效进行评价的权力。

终极目标:达成双赢共识

CR的根本目的是评审出优质的代码,但优质的代码是从“人”身上评审出来的,离开了人,就没有代码评审,因此,在实施CR实践时,我们不要只顾着关注如何评审出优质的代码,同时,也要兼顾到评审者的利益,毕竟评审者和开发者都是公司的员工,而且评审者和开发者之间都是有利益冲突的,如果评审者太较真,可能就会导致开发者私下里恨死评审者,这样的后果是不利于团队合作关系的建立和发展,也不利于CR实践的长久发展。

因此,我们必须让开发者和评审者之间达成双赢的共识,而如何才能达成双赢的共识,这是我们实施CR实践过程中的又一核心问题,当然,要解决这个问题,就离不开团队所有成员的主动协作和积极配合。

权责利统一

为了确保开发者和评审者能够达成双赢共识,我们必须将“权”、“责”、“利”三者统一起来,也就是说,我们要将评审的权力交给开发者和评审者,同时,也要将评审的责任交给开发者和评审者,最后,也要将评审的利益交给开发者和评审者,只有这样,开发者和评审者才能更愿意主动参与到CR实践中,才能更愿意在CR实践中付出更多的努力。

彼此认同

权、责、利三者是统一的,这仅仅是第一步,要想真正让开发者和评审者达成双赢的共识,还必须让开发者和评审者之间产生相互认同感,只有互相认同,才会产生更多的正能量,才能有更大的积极性主动参与到CR实践中,才会更有动力在CR实践中做得更好。

形成默契

默契是指两个人或者两个人以上的组织,在没有明言的情况下,能够心领神会地一致行动,而默契的形成,往往需要很长时间的相处、磨合,而且,默契的形成往往只能建立在一定的信任基础之上。

结语

代码评审是团队协作的产物,离开了团队成员的主动协作和积极配合,任何CR实践都是不可能取得成功的,所以,在实施CR实践时,一定要将“以人为本”的思想落实到实处,确保开发者和评审者能够各取所需,互利共赢,只有这样,才能实现CR实践的真正成功,并最大程度地挖掘团队的潜能。