如何做好 Code Review

最近公司的业务正在发展,参与的人也越来越多。但人数的增加也伴随着风险的提升,良莠不齐的人员配置,会使得代码质量难以控制。这个时候,就需要在代码入库之前,加上一道质检步骤,通过这个质检步骤,能够有限地规避一些风险。

本文以 Git 作为说明,其他 VCS 工具,原理也大致相同。

实现代码审查,现在大体有两种方式,分别是 类 Gerrit 或者 类 GitHub/Gitlab,这篇文章主要介绍后者。

类 Gerrit

Gerrit 是最容易实现代码审查的一种方式,它在真正仓库和开发者之间建立了一个审核区域,所有进入代码仓库的代码,都必须先通过这个审核区域。

git push origin dev/v1.0

这是最普通的提交方式,但在 Gerrit 中就不可以。

git push origin HEAD:refs/for/dev/v1.0

上面是正确的提交方式,注意到两者的区别了吗?多了一个 refs/for,这就是 Gerrit 的审核区域,只有通过审核,才能进入主仓库。这里给了一个内部实现图,有兴趣的同学可以参考,这里就不进行额外介绍了。

gerrit_workflow

类 Gitlab/Github

重点说说这类代码审查如何展开,因为现在公司使用的就是这种方案,而且 Gerrit 的颜值太低,哈哈。

权限分组

首先需要对权限进行分组,每个组的�拥有不同的权限,一般情况下分为 owner, master 和 developer。owner 拥有最高的权限,master 次之。我们用的最多的权限组就是 master 和 developer。master 能够在保护分支上直接 push,而 developer 就不能。这样通过权限的划分,就能保证属于 develop 这个组的人,�在没有代码审查的情况下不能将代码入库。

保护分支

在 Gitlab/Github 上有保护分支这个概念,当一个分支属于保护分支的时候,developer 是不能直接入代码的。

我们所进行的�工作,很多时候,都是版本迭代开发。因而会有分支去跟踪当前版本迭代。有一种比较好的划分方式,是 master / dev/version? / features/version?。 master 保存着当前最稳当的代码版本,而dev/version? 则是当前开发版本的代码,features/version? 是这个版本代码开发�feature的仓库。

developer �的权限只能在 features/version? 上进行工作。�那么如何合并代码�到 dev 分支了?就只能通过提交 Merge Request,审核通过后,�master 将代码弄到 dev 分支上去。

Merge Request

merge_request_select_branch

上图就是提交 Merge �Request 的界面。开发者可以选择自己所在的 features 分支,将相应的 commit 提交申请到 dev 分支上。master 会看到如下的界面,该界面显示�是否需要合并这个 Request。

merge request

是不是很简单?更多信息可以查看官方文档,�还有这篇博客


文档信息


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容