如何进行代码审查?问一下审查工具和审查流程

最近突然觉得代码审查的是个非常不错的实践,但是不清楚大家都是怎么去进行代码审查的,所以特来求教!

主要有两点疑惑:

  1. 用什么工具来审查?
    我们没有用第三方的VCS,比如github,所以pull request的方式貌似就行不通了。只是根据Log来查看代码提交,审查效率非常差,不知道还有什么其他的好工具和好方法。

  2. 用什么样的审查流程?
    审查者的问题:是任意其他成员都可以随时进行审查,还是说要开审查会议一起参加?
    时间的问题:是每周定期审查,还是每次发版本之前审查,还是每次代码提交的时候审查?

阅读 12.9k
5 个回答

在Phabricator找到一篇代码审查方式的文章,审查分为review (pre-push) and audit (post-push),解释的非常清楚,内容太多就不贴过来了,去看原文吧。

在WIKI上找到一篇代码审查工具的列表,写的非常清楚。我就自己试用的几款产品做一下比较。

  1. Phabricator:

    在试用多款代码审查工具后,发现其实还是Facebook开源的Phabricator是最强大的产品,可以进行类似pull request方式的审查,也就是上文中的review(pre-push)方式。

    优点:

    • 开源免费,
    • 功能强大,主要有针对For Developers和For Teams。比较实用的功能有:代码审查,任务管理,wiki,bug跟踪。
    • 安装相对来说还算简单,给了一个安装脚本,a LAMP (Linux, Apache, MySQL, PHP) application
    • 官网底部有星级争霸2的种族介绍超链接!(For fun but really true !)

    缺点:

    • 功能较为复杂,使用前有较多的文档需要阅读
    • 界面风格太西式,功能界面罗列一堆,用起来感觉挺复杂的
    • 有很多需要手动配置优化的东西,比如mysql、php等
    • 运行速度感觉挺慢的,特别首次导入一个项目,初始化时间大概有10分钟以上。
  2. Upsource:

    Upsource的审查方式其实比较适合在团队内部推行代码阻力较大,better than nothing的情况下用这个,对应上文中的audit(post-push)方式。

    优点:

    • 界面很清爽,功能也简单易懂,整体上就是为了code review做的产品,也没有冗余的功能,安装简单。
    • code diff做的很漂亮,显示很直观。特别是审查时会自动帮忙隐去无关上下文,只显示有变化的部分。

    缺点:

    • 每个审查是基于一个工程的,多工程组合的审查比较麻烦。
    • 独立产品,需要再建一套账号,貌似也没办法和其他工具联动。
    • 10人以上的版本就需要购买了,费用还相当的高,虽然提供支付宝购买,但是确实在国内觉得用不起。
    • 对服务器配置要求较高,真的需要8G RAM,否则很卡。

    图片描述

用gitlab搭建VCS,这样就可以用pull request来审查了。

每次pull request的时候审查就可以了,不行就打回去,行的话就合并进来。

我们流程是这样的,仅供参考:
1、3个人为一个小组,每天早上花15分钟把昨天写的代码一起过一遍。此时只看代码,不关于业务逻辑
2、每周或每两周整个team聚在一起花上半天把最近的核心代码过一遍,此时更关于业务逻辑与架构层的代码
PS:3个人一组短期内是固定的,但长期是可变换的,达到互相学习交流的目的。

新手上路,请多包涵

Perforce + Collaborator 进行代码review

新手上路,请多包涵

楼主知道用crucible怎么挂么?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏