关于代码审查的一点体会

为什么做

当前代码审查应该是所有团队的标配,只是有做的深入与否、效果好坏之分。如果你加入一个研发团队后,发现没有代码审查,那我的建议是:

  • 如果可以,那就建立代码审查机制
  • 否则就离开这个团队吧

关于代码审查的好处,主要有:

  • 保证代码质量
  • 团队成员之间相互学习
  • 协助新成员融入团队

怎么做

一提到代码审查,可能大家想到的就是一堆人在一起,对着屏幕上的代码指指点点。其实代码审查是一个系统工程,要想做好,必须不断投入,把控好每个环节,并且不断更新

设定规则

说到规则,可能会有人比较反感,认为太多条条框框会限制创造力,我遇到过因为这个而辞职的人。其实好的规则,不仅不会限制创造力,反而是提高创造力的最佳工具。这里面有一个原则是:

规则要切合团队实际,一定是切实可行

建议制定的规则包括:

  1. 代码规范。 可能很多人都会阿里的代码风格规范。我建议作为开发人员,需要仔细阅读下这个规范,并且确认规范里的每一条都适合你的团队。如果不合适,那就提取需要的,或者制定一套公司自己的代码规范。当然这个规范也不能太特立独行,否则新人的融入可能是一个大问题。
  2. 审查流程。 如果想做好代码审查,就要把它作为开发流程中的一个必要环节,并且是不能跳过的。
  3. 审查标准。 没有标准,那么每个审查都会按照自己的理解,给被审查的代码加评语,那么很难提高团队整体水平。

借助工具

工欲善其事,必先利其器。
这里推荐一个“极其不好用”的好工具——Gerrit,这是Google开源的一个代码审查工具,具体使用方法,我就不再介绍了。作为一个代码审查的工具,绝对是好用的。

先说几个优点:

  • 支持多人评审
  • 评审权限可以精确划分,包括+1、+2、Submit、Verified
  • 页面简洁,可以看到Change Size
  • 可以针对不同的分支设定权限
  • 插件丰富,可以和Jenkins、IDEA、Jira等各种工具集合,贯穿项目始终

至于不好用的地方,可以慢慢体会。

另外,要把工具的能完成的事情,交给工具来做,比如通过Jenkins做代码的静态检查、跑单元测试等,只有通过工具检查的提交,才能进入到人工审查环节。

能工具化的,一定要工具化

单人与团队

这里主要说的日常行为和非日常行为。如果借助Gerrit,我们可以要求每次提交必须经过:Peer +1、Lead/Arch +2、CI验证等多个环节才能合并到主干分支中。也就说Peer Review是日常行为。

因为Peer Review可能会失去一些全局信息,所以建议还要定期做Team Review。在做Team Review时,每次只看一个或者两个人的代码,要有完整的逻辑,从头讲到尾,在这个过程中,参与的人可以提出问题和改进意见,会议结束后作为改进项。

迭代更新

一个团队开始做代码审核后,就一定要防止流于形式,更要防止例外情况。
每个团队成员的水平都不一样,建议考虑以下几个方面:

  • 制定一个代码审查的清单,每个成员都可以按照这个清单自查和审查
  • 可以考虑一定时期内,制定一个或几个小目标;比如,10月份以缩减每次提交的大小为目标。这样利于执行,也利于团队逐步提高。

写在最后

总之,代码审查不是看看代码那么简单,而是一个系统工程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mydeman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值