Loading
0

开发者应该知道的代码审查工具,杜绝代码bug

由于项目时间紧,所以写出的代码就满是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的集成,关于团队性能的度量,等等。

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

【声明】:8090安全小组门户(http://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。