我们一直觉得代码评审很重要,但是一直也没做好,主要问题有两个:
- 每个人都忙于自己的开发工作,没有额外的时间和精力看别人的代码。
- 缺乏好的工具,把代码评审做为开发流程的一部分。
关于第一个问题,可以通过减少部分同事的开发工作量,省出时间来做代码评审。
关于第二个问题,可以考虑选用Gitlab,据说对代码评审支持得很好。
使用Gitlab需要我们做哪些改变呢?
-
去掉develop这个长期分支,只保留master这个长期主分支,可以给每个环境建立一个对应分支,这些分支都是master的下游分支,任何的代码改动都必须经过上游分支才能合并到下游分支,如下图所示,这个原则可以解决我们有时候忘记把产品分支的代码合并会develop分支的问题。
利用Gitlab进行代码评审
-
使用临时的特性分支,当开发接到新的需求时,需要从master分支拉出特性分支,开发只能在特性分支上开发代码,当代码测试通过后需要提交merge request请求把特性分支的代码合并到master分支。
-
代码评审就是利用merge request让开发指定code reviewer,代码经过评审之后才能被合并到主分支。大家可以在merge request上互动和互评,记录代码的修改意见。
是否需要对每个merge request进行代码评审?我觉得是需要的,因为只有这样才能尽早地发现代码里的问题,减少修复的成本。另外为了提高code reviewer的评审质量,每个comit的代码行数要少,这样code reviewer才能集中精力,更容易发现代码里存在的问题。
网友评论