我用过的几种code review方式

62 阅读2分钟

我经历过的公司,有如下几种code review方式,其中第一种是我觉得是比较严格的。我们先说第一种。 先看一张图,这个是一个代码「合并请求」。

点我点击确定后,就会来到如下的界面:

这个时候,负责代码审核的人就可以在这个合并请求里,写自己的comment了。比如:

点击立刻发出后,这个comment就变成了一个「待解决」的问题了。如果这个问题不解决,代码是无法合并的。代码提交者必须强制的去解决。

对于非常核心的业务模块,经常是有2个代码审核人的,他们会写大量的comment。代码提交者必须一个一个的解决。

比如上面的代码问题,我重新提交后,审核人觉得没问题,它会手动关闭这个问题的,然后点击审核通过。

下面是我改后的代码,并提交了。

@Slf4j
public class CodeReviewDemo {
    public static void main(String[] args) {
        log.info("Code Review Demo");
        if (args.length > 0)
            log.info("Argument 1: " + args[0]);
    }
}

这个时候,之前的合并请求会自动更新修改后的代码的。如下:

审核人觉得没问题,就会关闭之前的那个comment的。

这就是我们当时玩的比较正统的代码审核流程了。

但是呢,很多公司并不是这么玩的,多数都是如下几种方式:

  • 定一个会议室,然后由代码提交者,直接做代码投屏,讲解代码给审核人听。审核人给出修改意见;
  • 也有把合并请求链接发给某个高级开发,让他帮忙看一下,给出意见,提交者去修改;

用会议室那种,其实对代码提交者来说,压力挺大的。经常会出现某些自以为厉害的高手,给出各种高大尚的方案。但是呢,当时的条件下,又无法实施。项目进度又紧张,真搞不了。

因此,我的个人建议是,把技术方案(并不一定写成很完整的技术设计文档的,思路也行的),跟团队里的leader或者高手,先对一下。

先保证大方向,大家是一致的。这个很关键,既能避免走偏,也能大大加快后续的code review过程。

另外呢,业务核心代码模块,我是建议,的确要审核一下,哪怕是只是改了一行,也是有可能导致大故障的。

剩下的,如果是人本来就靠谱的,不是很核心的,不用代码审核都可以的。