原文:Code review tools you should get to know
作者:Aaron Raizen
翻译:Diwei

译者注:由于项目时间紧,所以写出的代码就满是bug?别再找借口了,本文作者列举出了7种工具帮助你审查代码,保证代码的高质量,让我们一起看看都有哪些工具吧!以下为译文。

让我们想象一种场景,假设你是一位项目经理,你这周就要把系统提供给客户。到了周一早上,但是你团队里面95%的成员仍然昏昏欲睡。哦,你猜为什么?因为他们的代码都是bug。应该怎么做呢?

在想象一种场景,也许你是一名开发人员。现在是周一早上。你从周末开始就睡意不断,你的项目经理因为本周“不得不出货”,而你的代码却到处都是bug。的确,应该怎么做呢?

好吧,你可以从旁边的小隔间打电话给“大胡子”史蒂夫,来检查你的代码,但如果真让他来检查,可能你的键盘上面就都是他的胡渣了,你肯定不想这样。看起来你需要一个代码审查工具。你很幸运,因为我刚好在这篇文章里准备了一份工具清单。但首先我需要介绍一些背景信息。

通常我们讨论的代码审查工具有两种类型:自动和手动。前者“根据一组预定义的检查源代码的规则,生成报告”,而后者则用于“需要合作共同检查和讨论变更的场景时,而且需要将这过程的历史也存储下来以备将来参考”。(维基)这里我们将会重点介绍手工代码审查工具,所以针对我们今天提及的顶级代码审查工具,你会提供什么意见,你的最终选择又会是哪一款工具。

首先,让我们看一下Atlassian的Crucible,它是当今市场上最受欢迎的选择之一。它是一个基于web的应用程序,主要针对企业。不仅促进了异步审查和对代码的注释,而且还使得团队能够很容易地进行协作。

Crucible还集成了Atlassian的其他产品,比如Jira的bug和问题追踪功能,以及Bitbucket服务器。另外,看看Atlassian市场,你可以看到许多用于定制Crucible的附加组件。他们甚至还提供一个REST API以帮助用户构建自己的附加组件。

这里有图表和报告、内嵌注释、线程对话和可显示最近评论和审查更新的活动流。

价格也很合适:你可以免费用30天,而且有5名用户可以有机会只需10美元。

接下来是Review Board,“一个开源的、基于web的代码和文档审查工具,用于帮助公司、开源项目和其他组织保持代码的高质量,而且bug数量也会比较低。请注意,这是审查代码和文档的。这意味着你可以用它来审查任何事情。简单地将一个文件拖放到一个评审请求中,然后任何人都可以在它上面留下注释。例如,将它用于日志文件、控制台输出,甚至可以对UI和图形进行评论和评论。

Review Board有一个很高级的功能,就是差异查看器(文件比较),它允许将代码扩展到最近的函数或类,最近的代码更改,或者每次20行。它还提供了简单的注释、基于web的界面和命令行工具来简化审查请求提交过程。指示板提供了对所有审阅请求的最新概述。

Review Board是正在被几家大公司(领英、Mozilla、Yelp)免费使用。

Parasoft提供了一系列的测试工具,这些工具获得了许多好评,其中就包括支持任何语言和文件类型的Peer review。而且,当手工评审代码还不够时,它还集成了其它一些用于单元测试、端到端功能和负载测试、服务虚拟化的软件。

Parasoft中有个很棒的功能,就是工作流管理的自动化,包括准备、通知和跟踪。新的代码被自动识别,接着与指定的审阅人员匹配,然后跟踪每个评审项目的进展直到结束。开发人员只需简单地检查代码,然后根据预配置的审核人员映射关系,就可以自动地检查包,并将其分发到适当的审阅人员的集成开发工具中。这个功能很赞!支持所有常见的开发环境。

亚伯拉罕·林肯曾经说过:“合作推动创新”。哦,不,开玩笑的,这不是真的(也许他曾经说过“不要相信你在网上看到的一切”)。这实际上是Smartbear公司的Collaborator标语—Collaborator适用于所有开发工作流程的代码评审和文档评审(这是他们的另一个口号)。

所以使用这款工具,我们将得到对源代码和其他文档的同行评审,报告和度量,甜蜜的bug跟踪特性,以及大量的集成:Git,Visual Studio,Team Foundation Server。是的,几乎集成了所有的东西。它是闭源,但这很酷。前10个用户可以免费试用,之后你就得让你的老板付费了。他们也有一些知名的客户,如Adobe、甲骨文、惠普、美国银行等等。

来看看他们的流程图。来吧,我们都喜欢一个好的流程图。

IDE中的重量级作品JetBrains推出了Upsource,这是一种多语言代码审查工具。为什么通晓多国语言?下面是支持语法高亮显示的语言列表。不错,但是COBOL的支持在哪里呢?

第一件很酷的事情是让合作变得很轻松。只需发送一个URL就可以共享代码、修订、扩散、代码检查、搜索过滤器、文件,甚至代码选择。另外,开发人员可以通过插件直接从IDE中获得代码评审。它与GitHub、Jira和其他公司进行了整合,并有一些不错的分析功能。如果你已经使用了JetBrains IDE,那绝对是值得考虑的。

接下来介绍的是Reviewable,它成功吸引人们的原因不仅仅是因为开源,还因为它的logo是一个带着单眼镜的兔子。用他们的话来说,它有“比你可以摇一摇的更多的特性”——一个大胆的声明,知道那里不缺少顽强的坚持不懈的人。有几个问题是:

  • 只看你上次看的时候发生了什么变化(即使是重新建立的)
  • 立即对文件的任意两个版本进行比较,在一两个列中
  • 隐藏虚假的白只、合并或重基delta
  • 跟踪检查的文件,未回复/未解决的注释
  • 注释映射跨代码更改,永远不会消失
  • 实时更新和更多

这款工具有免费版和付费版两个版本。

最后,我们介绍Gitcolony,用它管理代码也不算太糟糕(这是他们的原句,不是我说的)。Gitcolony的特色就只有一个,就是它的pull requests功能。你可以“创建一个虚拟pull request,这样就可以边写代码边检查”。

这里的想法是,如果开发人员只需要评审小部分的代码,他们的注意力可能会更集中,可以更快的发现问题和bug。“让程序员检查10行代码,他们会发现10个问题。如果让他们检查500行,他们会说代码看起来没问题”,这句话引自他们的网站。这种说法很有道理。

如果你的项目位于多个代码库里面,那么这时候就可以体现出它的linked pull requests功能。它可以自动地将来自不同代码库的请求链接起来,但是与相同的源分支可以在评审后同时合并。其他一些亮点包括与QA的集成,关于团队性能的度量,等等。

好的,就介绍这些吧。如果你使用了这些工具中的某一种,现在就可以惬意的泡一杯咖啡,然后跟已经非常心烦意乱的项目经理说不用担心了,我们在周五就可以提供系统,而且是在周五中午。

您应该知道的代码审查工具相关推荐

  1. 代码审查工具 sonarqube 简介

    目录 1. 什么是SonarQube? SonarQube的功能 1.糟糕的复杂度分布 2.重复 3.缺乏单元测试 4.没有代码标准 5.没有足够的或者过多的注释 6.潜在的bug 7.糟糕的设计(原 ...

  2. 20最佳代码审查工具-专门为开发人员准备

    程序员总是面临最后期限的压力和很多延误软件设计相当不稳定,整个产品是不稳定的.这种不稳定性的设计软件的原因是,它是不能正常测试.来的工作代码审查工具.的代码审查工具可以帮助web开发人员指出他们哪些区 ...

  3. 代码审查工具【Review Board】在Windows环境下安装与配置

    前言 Review Board是基于Web的代码审查工具. 官方网站:https://www.reviewboard.org/ Review Board在Windows环境下安装是一件比较困难的事情, ...

  4. docker搭建upsource代码审查工具,通过gitlab检出项目

    docker搭建upsource代码审查工具,通过gitlab检出项目 机器配置 docker搭建upsource代码审查工具,通过gitlab检出项目 拉取镜像 创建挂载目录 启动容器 配置账号密码 ...

  5. Upsource 一个新的代码审查工具-安装使用指南

    为什么80%的码农都做不了架构师?>>>    Upsource 一个新的代码审查工具(Polyglot code review tool),Upsource安装.配置及使用介绍-- ...

  6. Phabricator是什么,代码审查工具

    Phabricator是什么? Phabricator支持两种代码审查工作流:"review"(提交前审查)和 "audit"(提交后审查). Phabrica ...

  7. docker运行gerrit(代码审查工具)

    gerrit是什么? Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面. gerrit背景 Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面.利用网页浏览器,同一个团队的软 ...

  8. 代码审查工具StyleCop

    "代码审查"或是"代码评审"(Code Review),这是一个流程,当开发人员写好代码后,需要让别人来review一下他的代码,这是一种有效发现BUG的方法. ...

  9. PYTHON代码审查工具

    这两天看了python相关代码的审查.覆盖等工具,先记录下来,后边再总结其用法. 1. python的review工具 1.1 Review board Review board 是一个 基于web ...

  10. java代码审查工具_APP开发常用的一些工具包、软件工具

    在APP开发过程中,如果一味的手打每一段原生代码,那么工作量将会非常大,使用适当的软件开发工具,能帮助你在开发软件时节约很多时间,提高工作效率,接下来就来看看在APP开发项目中常用的一些软件工具: 1 ...

最新文章

  1. 特征工程之时间特征、自然语言特征、图像图像特征、数据分布不平衡
  2. hadoop HA集群搭建(亲测)
  3. 新锐商务首选!HP EliteBook 745 G5图评
  4. 连接相机无法识别_车牌识别一体机在汽修门店安装中要注意的事项
  5. TrueBit白皮书解读
  6. NOIP模拟 整数划分(数论,质因数分解,状压DP)
  7. Ooooops! 这通骚扰电话是AI机器人打的(浙大出品,中文很6)
  8. Winform/WPF国际化处理
  9. Linux用管道移动文件夹,linux常用命令(示例代码)
  10. 好的串行代码与好的并行代码的区别(Zz)
  11. airpods pro连接安卓声音小_安卓手机用 AirPods ?你需要这个 App
  12. hash函数的构造方法
  13. 计算机课包括什么东西,计算机全课程包括什么?
  14. Unity酱~ 卡通渲染技术分析(一)
  15. nodejs中https和ca证书
  16. 如何在高压系统中实现电源和信号线的电气隔离
  17. yolov5 6.1官方模板TensorRT加速保姆级图文教程
  18. Linux的firewalld防火墙学习笔记220929
  19. 【Python面向对象编程】第11篇 特殊方法之__str__和__repr__
  20. 查询所有表、索引、视图信息的SQL语句-Mysql/oracle/sql server的不同实现方式

热门文章

  1. JAVA数据库宾馆住宿系统_基于Java的酒店入住管理系统的设计与实现(含源文件).doc...
  2. 必须收藏!130 个相见恨晚的超实用网站,一次性分享出来
  3. python数据分析基础pdf中文下载_Python数据分析基础(pdf+epub+mobi+txt+azw3)
  4. Spring学习路线
  5. 二元函数连续与偏导数存在的关系_二元函数连续、偏导数和全微分之间的关系...
  6. 【Try to Hack】masscan
  7. SpringBoot 导出Excel 固定表头
  8. 病毒名称:Hacktool (正当追杀+旁门左道)
  9. 【牛客网】滴滴出行2017秋招测试岗笔试真题汇总
  10. 三点估算法_三点估算