注册

关于CodeReview的一些思考与看法

写在前面:本篇文档是关于团队实践中CodeReview的一些个人想法,非常主观。想法主要来源于日常工作的一些感想,以及参考了其他团队的一些CodeReview规范和做法,有很多的地方考虑不周到,还请大家多多包涵。本篇文档的主要目的是拉起大家对于CodeReview的一些思考,如果看到这里,已经燃起你对思考CodeReview这件事情的欲望了,那么就请在这里打住,不要再往下看了。


为什么要拉CodeReview会?


从两方参与变为三方参与。



两方:reviewer,author


三方:reviewer,author,others





  • 对于author来说,



    • 拉会的形式能够加速review的流程,高效迅速完成CodeReview,避免一个mr拖太久
    • 能够引入更多的同学拉review自己的代码,减少低级错误,更好地提升和保障代码的质量
    • 拉会的形式对于author的逻辑表达能力有更高的要求,可以锻炼自己讲解代码的能力,同时也是自己知识输出的一种途径



  • 对于reviewer来说,



    • 拉会的形式能够帮助reviewer更好地理解代码逻辑,避免自己花大量时间看大段逻辑复杂的代码
    • 对于代码中有疑问的地方能够直接提出疑问,并及时得到解答,提高review效率
    • 避免漏掉review一些比较小的点




代码评审有个重要的作用,那就是可以教会开发者关于语言、框架或者通用软件设计原理。
——from 谷歌 code review实践





  • 对于others,



    • 新同学能够学习到组内大佬的思路和解决方案,加速成长
    • 促进团队内部知识共享,提高团队整体水平



什么时候应该拉CodeReview会?



  • 新增代码逻辑较为复杂,如新增某个接口or新增某个特性
  • 代码改动较大,如对某个模块进行了整体的优化or把代码改得面目全非了
  • 引入了新的技术或者新的架构

什么时候不应该拉CodeReview会?



  • 代码改动较小或改动的逻辑较为简单
  • mr上评论未解决,或检查未通过

CodeReview流程




  • 会前



    • 代码已完成自测,并且提mr,邀请相关的reviewer
    • 提前一到两天与主reviewers(至少一位主reviewer)约定时间,并将会议链接发到群里,感兴趣的同学可自行选择参与




如何选择主reviewers?



  1. 模块的负责人或者对模块熟悉度比较高的人
  2. 此次开发改动了对方的代码、逻辑
  3. 技术评审、需求开发过程中较为活跃或者贡献出意见的人




  • 会中



    • author首先简单同步一下需求的背景和改动的范围
    • author整体过一遍代码,重点讲述代码变动的地方和需要讨论的地方
    • reviewer可随时打断,提出自己的疑问或者修改建议,author进行解答或反驳。


    • 注意气氛,实施review时,要营造一个讨论问题、解决问题的氛围,不要搞成批判会或吵架会




    • author控制review的时间在1小时之内,避免长线作战



  • 会后




    • author根据修改建议完成代码修改,并邀请reviewer再次评审,如无问题,reviewer可以点approve,然后合入


作者:啊北_
链接:https://juejin.cn/post/7212563816453898301
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 个评论

要回复文章请先登录注册