阅读更多
引用

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

好的,就介绍这些吧。如果你使用了这些工具中的某一种,现在就可以惬意的泡一杯咖啡,然后跟已经非常心烦意乱的项目经理说不用担心了,我们在周五就可以提供系统,而且是在周五中午。
  • 大小: 107.6 KB
  • 大小: 8.7 KB
  • 大小: 30.3 KB
  • 大小: 11.8 KB
  • 大小: 9.3 KB
  • 大小: 99.4 KB
  • 大小: 33.8 KB
  • 大小: 28.5 KB
0
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 如何学习Oracle

    今如何学习Oracle天给大家带来的是怎么学Oracle,其实Oracle并不算太难,只要掌握技巧。好了,废话不多说,咱来看看博主怎么说吧! 我主要从六个方面来学习: 基本入门 数据管理 内置函数 使用pl/sql 游标 触发器 基本入门 学习的开始当然是认识软件啦,我下的是PLSQLDeveloper,如下图: 打开之后需要进行登录,有不同的身份,当然也对应着不同的权限。 这是内置用户,我们可以进行登录从而进行下一步的学习。那有人会问了,难道基本除了了解软件没有别的了吗?当..

  • java oracle 编程_Java基础——Oracle(一)

    Oracle是目前最流行的数据库之一。功能强大,性能卓越。所以学起来比较困难。学习Oracle需要具备一定的基础。比如学习过一门编程语言,或者学过其他的数据库等,没有一些基础很难下手。一、Oracle的简述1.目前主流数据库:SQLServer mysql Access Oracle / DB22.Oracle数据库(Database):它是一个数据容器,它包含表,索引,视图,过程,函数,...

  • 三.数据库基础-Oracle入门到精通学习这一篇就够了(详细)

    oracle入门到精通

  • 多久学会oracle数据,记住这5点,让你学会Oracle数据库!

    原标题:记住这5点,让你学会Oracle数据库!Oracle是目前最流行的数据库之一,功能强大,性能卓越,相对的学习难度还是不小的。在这里呢就是分享一些经验,方便其他的学习者,能对Oracle有个总体的认识,少走一些弯路。Oracle数据库的书真的很难懂,Oracle真的很难学吗?不少人都是存这样的疑问。其实Oracle就是一个小软件,它把复杂的事情封装起来了。Oracle分为两大块,一块是管理,...

  • 新手学习Oracle最难的是什么?

    学习Oracle的第2篇新手学技术最难的不是技术本身什么是虚拟机环境规划环境主机网络系统规划下载VM虚拟机Windows操作系统的安装Windows操作系统安装结果几个需要注意的点总结一下下次更新 新手学技术最难的不是技术本身 好久不见,甚是想念 自从接触计算机这门专业,深感对于新手而言难的不是技术本身,而是环境的配置。从当年大一VC++6.0大二VS再到如今的虚拟机、Oracle,书本难可以请教别人,但配置环境只能靠自己一步步耐着性子慢慢来。历时一天半,终于安装好了虚拟机四台Oracle Linux 7

  • 学Oracle数据库有什么用,初学Oracle数据库好学吗?需要注意哪些

    做为初学者,最怕的就是好高骛远,所以学习Oracle数据库首先要摆正心态,要知道这是一个长久的过程,绝不是一蹴而就的。同时也要结合自己的情况,设计合理的学习计划,是只想学习运维知识,还是要往开发方向走,是打算入行靠这个技术养活自己,还是纯兴趣爱好。不同的需求所面对的过程差距很大。学习Oracle你首先得了解这几个名词。数据库,数据库管理系统,数据库系统。数据库:是存放数据的仓库,所有的数据在计算机...

  • 学习oracle一个月心得

    转行互联网,你觉得很容易吗? 有没有人和我一样,看起来能学会但是焦虑之后的职业规划?

  • 对ORACLE初学者的一点建议

    近一两年来,大型项目的开展、Oracle数据库价格的下调及从SQL Server迁移到Oracle需求的增加,使得Oracle的人才需求增加,而且Oracle公司在04年把战略重点转向了中小型企业,也进一步加速了Oracle数据库在国内的发展,相应的这些变化使得越来越的人开始关注和使用Oracle数据库。oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学

  • 学习 Oracle过程中几个常见问题的总结

    1.找出无用索引:  DML 性能低下,其中最严重的原因之一是无用索引的存在。所有SQL的插入,更新和删除操作在它们需要在每一行数据被改变时修改大量索引的时候会变得更慢。许多 Oracle 管理人员只要看见在一个SQL 查询的WHERE语句出现了一列的话就会为它分配索引。虽然这个方法能够让SQL运行得更快速,但是基于功能的Oracle 索引使得数据库管理人员有可能在数据表的行上过度分配索引

  • 大学oracle课好难,公认“四大最难学”大学专业!俗称“四大挂科王”但是就业工资高...

    文 | 七天栏目 | 大学【引言】老师从来不会骗学生,都是美丽而善良的谎言……上学的时候老师就给我们埋下了一个美丽的种子,就是上大学的种子。他告诉我们要努力学习,考上大学就好了。尤其是高中,老师总是说到了大学就轻松了。大家很信老师的话,努力读书,终于考上了大学,结果,一些人认为老师骗了自己,一些人认为老师说的太对了。说老师骗了自己的人选择了一个比较忙的专业,发现忙起来比高中还累。那些说老师说的对的...

  • oracle数据库简单的学多久,讲讲新人的oracle数据库学习

    1.dbms建立在操作系统上,所以对操作系统的设置操作要熟悉,尤其服务器unix系统为主,一般大家对unix的了解也不如windows,所以需要学习下。需学习的常用知识:目录结构,文件及文件夹操作,用户管理,用户配置文件,系统资源和负载查看,配置、安装软件包2.oracle学习①首先是sql,②其次先了解数据库基本概念和数据库对象,③再是进行安装前配置和安装oracle软件,④再是创建库,了解连接...

  • 有了SQLServer的基础,轻松学习Oracle

    最近想要了解一下Oracle,就和度娘借了点资料,学习学习。Oracle,我知道也是数据库,至于其他的,我就不清楚了。所以,还是了解一下吧。 其既然也是数据库,那和SQLService应该有所异同吧。 Oracle是目前最流行的数据库之一,很多大公司都在用它。它的功能强大,性能卓越。 我们在开发系统前无疑要设计我们的数据,那么你有没有认真考虑过,你所开发的系统使用哪种数据库最好呢?

  • oracle数据库简单的学多久,这是我总结的新学的oracle数据库,适合学过的新手复习...

    ----------------------------------------------------------------------------------05_Oracle----------------------------------------------------------------------------------每周一看 升官发财 (0^0)DDL数据定义语言 语句...

  • oracle学习资料

    个人分类:Oracleqq_409998892018-05-27 09:24:53#3楼图片什么的都没了kk_9452018-03-29 10:20:32#2楼图片都看不到呢qq_417496862018-02-22 11:17:12#1楼sss上一页1下一页非常好的Oracle基础教程http://www.blogjava.ne 字符串函数 LENGTH() 字符长度 LENTTHB()...

  • Oracle数据库学习(一)--数据库原理及SQL

    Top 数据库原理 SQL(DDL、DML) 1. 数据库原理 1.1. 数据库简介 1.1.1. 文件存储 对数据的存储需求一直存在。保存数据的方式,经历了手工管理、文件管理等阶段,直至数据库管理阶段。 文件存储方式保存数据的弊端: 缺乏对数据的整体管理,数据不便修改; 不利于数据分析和共享; 数据量急剧增长,大量数据不可能长期保存在文件中。 数据库应

Global site tag (gtag.js) - Google Analytics