本文已收录GitHub,更有互联网大厂面试真题,面试攻略,高效学习资料等
我见到很多国内公司也在尝试使用代码审查,但是效果很不好,往往流于形式,最常听到的一个负面反馈就是“代码审查浪费时间”。
代码审查的成功推行的确不是一件容易的事。今天,我们就一起尝试来解决这个问题。我会从三个方面给出一些建议:
- 第一,在团队内引入代码审查的步骤和方法;
- 第二,成功推进代码审查的关键操作;
- 第三,持续做好代码审查的重要原则。
今天的文章较长,我们现在就进入第一个部分,
引入代码审查的步骤和方法
从我的经验来看,要成功引入代码审查,首先要在团队内达成一些重要的共识,然后选择试点团队实行,最后选择合适的工具和流程。
1.代码审查应该计入工作量
代码审查需要时间,这听起来好像是废话,但很多团队在引入代码审查时,都没有为它预留时间。结果是大家没有时间做审查,效果自然也就不好。而效果不好又导致代码审查得不到管理者重视,开发人员更不可能将代码审查放到自己的工作计划中。于是,形成恶性循环,代码审查要么被逐渐废弃,要么流于形式。
之前在 Facebook 的时候,我们预估工作量的时候就会考虑代码审查的时间。比如,我平均每天会预留 1~2 个小时用于代码审查,大概占写代码总时间的 1/5。同时,代码审查的情况会作为绩效考评的一个重要指标。
另外,平时我们也会给审查者关于审查质量的实时反馈。比如,我刚加入 Facebook 的时候,对代码审查不够重视,做得不够好。我的主管就两次给我反馈,让我提高审查质量。其中一次是让我多给同事做审查,另外一次是让我多给一些结构上的建议,不用太重视语法细节。
经过这两次反馈,我意识到了代码审查是我工作中实实在在的一部分,需要得到足够的重视。也正因为此,我才真切地感受到了代码审查的价值。
总之,管理者要明确代码审查是开发工作的重要组成部分,并记入工作量和绩效考评。这,是成功引入代码审查的前提,再怎么强调都不为过。
形成共识以后,下一步就是选择试点团队推行代码审查。
2.选择试点团队
引入代码审查的一种方法是,在整个团队从上往下全面推行。在团队规模比较小的时候,比如少于 20 个开发者,这个方法很好用,能够快速推动。但如果团队规模较大,成员对好的
代码审查方法又不是很熟悉的话,往往会造成混乱。
比如,大家会倾向于按照自己的想法进行审查,这就可能会出现审查者只检查格式,或者把个人喜好强加到别人身上的错误做法。
如果在一开始的时候,就出现较多的负面效果的话,会让大家丧失推行代码审查的信心。
所以,我推荐先不要大范围实施,而是应该先选择试点团队,之后再推广。这样做的好处是,一方面,试点团队成员有限,容易推行新的做法;另一方面,有了试点团队的成功案例后,再全面推行就有了可借鉴的经验,会更顺畅。
关于试点团队的选择,最好是找成员经验丰富、对技术有追求,同时所做业务又不是最紧急的小团队。这样的团队成员不仅会有兴趣,而且也有精力去学习好的审查实践,