阅读更多
引用

译者注:由于项目时间紧,所以写出的代码就满是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数据,记住这5点,让你学会Oracle数据库!

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

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

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

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

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

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

     Oracle数据库学习(一)--数据库原理及SQL标签: oracle 数据库 数据库原理 sql2016年03月22日 22:59:543089人阅读 评论(0) 收藏 举报 分类:数据库(6) 版权声明:本博客内容多为学习和工作笔记,有用的内容直接就CV大法带走 http://blog.csdn.net/qq_25409579/article/details/50959325目录(?)[+]...

  • Oracle中执行SQL过程

    SQL执行过程的图大同小异,我们今天主要说执行器,因为执行器中执行计划是非常重要的,它可以辅助我们继续SQL优化,检查SQL语句BUG。目前一般开发人员【不包含DBA和资深数据开发人员】使用最多的就是PLSQL,而PLSQL本身自带查看执行计划的按钮,所以不过多说明。此处用NAVICAT说明: 第一步:EXPLAIN PLAN FOR 第二部:写sql语句 第三步:SELECT * FROM TABLE(dbms_xplan.display); 如下图: 通过上图查看执行计划表可以发现一些字段,我们逐个进

  • 由儿童故事引申出的ORACLE优化思路剖析

    近期做了不少相关ORACLE培训,同时也处理了非常多的案例,越来越深刻的发现,其实优化和生活中的道理是一样的。我反复的和学员、同事、朋友说这些,就为了说明这个简单的道理:其实优化和生活是一样一样一样的! 无非就是意识+技能。 我发现我每10个优化案例中,就会有5个左右是不需要ORACLE技能,而仅需要意识的,然后另外5个呢,是需要技能+意识。 比如如下...

  • Oracle数据库启动过程详解

    二、Oracle数据库的四种状态 Oracle数据库有四种状态:SHUTDOWN、NOMOUNT、MOUNT、OPEN.Oracle数据库启动主要包括三个过程: 执行 startup 命令,Oracle数据库会依次完成这三个过程; 另外,也可以通过手工命令依次进行: 转自:Oracle数据库启动过程详解_徐小广的博客-CSDN博客_oracle数据库启动...

  • oracle启动过程

    ORACLE SERVER由实例(Instance,应用程序)和数据库(database,数据库文件)组成,而实例是由一组后台进程和一块共享内存区域(sga)组成,而后台进程是数据库和操作系统进行交互的通道,后台进程的命名由ORACLE_SID决定,ORACLE根据ORACLE_SID来寻找参数文件启动实例。数据库是指存储在磁盘上的一组物理文件。ORACLE启动分3个过程:NOMOUNT状态:ORACLE需要寻找SPFILE(System Parameter File)(oracle 10g默认,pfile

  • oracle如何启动过程,ORACLE启动过程

    数据库启动过程中有3个状态:nomount、mount、open通过如下视图可查看数据库的当前状态:selectopen_modefromv$database;--数据库状态为nomount时查询报错:databasenotmountedselectstatusfromv$instance;--数据库为nomount时,值为STARTEDmounted ------moun...

  • 查看oracle执行过程

    explain plan for select max(datetime) from gw_fact_cityhour;select * from table(dbms_xplan.display); ...

  • Oracle--创建执行过程

    set serveroutput on; --只有开启的情况下才能在控制台输出结果 declare CURSOR org_cur IS select id,org_name from eom.t_sys_organization where pid=2 and deleted='N' ; total number(10); BEGIN FOR org_row IN org_cur LO...

  • oracle 数据库启动过程各步骤详解,Oracle 数据库启动过程各步骤详解

    Oracle数据库的完整启动过程包含以下3个步骤:简单地说,就是:启动实例-->加载数据库-->打开数据库.------------------------------------------------------------------------------------------------------------------1.创建并启动与数据库对应的实例。在启动实例时,将为...

  • oracle之数据库实例的启动和停止过程

    oracle数据库的启动和停止过程 一、管理监听程序 只有具备sysdba和sysoper系统权限的用户才能启动和关闭数据库。在启动数据库之前应先启动监听程序,如果监听程序没有启动就不能利用命令方式来管理数据库,包括启动和关闭数据库。 启动监听 lsnrctl start 2 关闭监听 lsnrctl stop 把监听程序关闭,再查看监听状态时提示监听程...

  • 简述oracle启动过程,Oracle启动过程和方式

    一、Oracle服务的启动(必须为oracle用户)启动Oracle:先启动Oracle、启动监听停止Oracle:先停止监听、再停止Oracle1.监听lsnrctl start //启动监听lsnrctl stop //停止监听2.数据库开启(以下是三种数据库开启的不同方式)1)开启数据库1 //启动系统 -->sqlpl...

  • 如何学习Oracle

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

Global site tag (gtag.js) - Google Analytics