注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

译-Effective Code Review with Sonar  

来自杨霞如   2013-06-24 11:52:46|  分类: 流程相关 |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 在Sonar的源码管理中,我们喜欢尽可能得使用自己的产品。虽然这在软件开发中并不是最常见的现象,但因为我们的产品本身就是为了软件公司的软件开发服务的,所以我们可以这样做。我们有一个sonar的环境来每天都分析自己的产品,并且已经用了相当长的时间。我们使用诸如警告和 SQALE indicators (Technical debt)来监视我们的代码质量。我们定义了一个Quality Gate,说起来比较简单,就是SQALE 指数必须是Atechnical debt 必须不能在releases之间增长,而且必须不能有blocker或者critical的错误。

  这个Quality Gate是非常好的概念,但是不够有效率,因为我们可能会在一个季度里引入错误,但在最后要release才去改它们。事实上,这些错误最好是在它们引入的时候就被修复,就像在持续集成中发现单元测试的错误我们会马上修复一样,因此我们引入了我们所谓的持续检查。今年我们做了非常多的工作来提供更好的持续检查地功能,加入了一些新的功能:差别视图,SCM的信息,集成邮件提示和Sonar Eclipse的人工审查。人工审查是最近非常赞的功能,可以使代码审查变得很有效率。

  那么怎么样来做到这些呢?这就是今天的主题了,让我们启动sonar2.11,打开装有Sonar Eclipse 2.1Eclipse,跟随下面的指示开始吧。 

第一天、开发,测试,递交……睡得香

使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如

 

  管理代码质量就像在处理非回归:当开发人员在开发工作的时候,应该可以不用去关心质量,Process会处理好,并且在有问题的时候通知你。开发者可以专注在代码上因为你知道持续集成服务会帮你检查你的集成完全没有问题。同样的,当你改进一项功能的时候,集成测试会检查你没有破坏掉原有的一切。同样的,不用担心,Sonar会帮助你关心代码的质量。

  如果你喜欢做本地的分析并且在开发过程中得到实时的反馈,你也可以用Sonar Eclipse。但现在来讲这种方式还不是最佳的,因为你只能对代码进行全部的分析,而不能进行增量的分析,我们正在解决这一问题。

第二天一早,代码审查

 使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如

  在美美得睡上一觉并且享用一杯咖啡后,你想必想要知道前一天的代码质量怎么样,登陆进Sonar,在你的项目上选择“since previous analysis” differential views 你就可以看到昨天新引进的问题了。有些问题比如,潜在的bug,太复杂的类,覆盖率不够的测试等就可以发现了。 但不管这些错误是什么,你知道这些增加了你的项目的technical debt,修复一个错误就像修复一个bug,越早修越容易。因为这个错误的上下文信息在你的脑海里还比较新鲜。 

使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如

  用differential violations drilldown来追踪新引进的错误,对新引进的错误--它们会变得越来越少,因为你会越来越熟悉代码质量,审查它(create a review),分配它,或者必要的时候标记它为误判。如果你的代码配置管理工具是被sonar支持的,那么可以安装Sonar SCM Activity plugin找到引入这个错误的开发,安装这个插件后,开发的信息会被显示在错误的边上。 

使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如

   尽管使用这个流程可能只要花费一点时间就可以最高效得减少technical debt,最终的目的是为了提供一种可以把错误的信息通知引进该错误的人的机制。 

在开发新代码前,修复错误.

使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如

   当你审查了所有新引进的错误后,你就可以用你最喜欢的IDE开始编码了,在编码之前,可能你会希望修复掉你所引进的错误,不是吗?

  如果你是使用Eclipse,那么非常的幸运:Sonar Eclipse为你的审查提供了非常高效的方式。多亏Mylyn connectorSonar Eclipse得以把所有分配给你的错误引入到Eclipsetask view视图里。然后你就可以在Eclipse里面看到所有审查后的错误了,点击可以跳转到相关的文件,修复错误并且把审查的状态标记为fixed,这样这个错误就会在task view列表里消失了。这是修复错误非常简单的方式,如果说对某个错误,你还不是十分确定的时候,你可以对这个审查加一个注释从而发起一个讨论。

 使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如

 如果你不是使用Eclipse,你还是可以收到分配给你的审查错误的通知。只要登录Sonar页面,跳转到My Profile页面去激活你的邮件通知就可以了。这样的话,所有分配给你的错误审查就都不会错过了。事实上,你应该在两种情况下都去激活邮件通知的功能,因为可能你创建了一个review,但是分配给了其他人,你可能想要知道这个review有没有解决,或者这个review有没有被开发加注释。

 关于已经解决的错误

使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如 

  Sonar帮你管理代码质量,并且也会确保正确得处理已经修复好的reviews。在下一次的分析中,对每一个已经修复好的review,如果相应的错误真的消失了,Sonar会把review的状态设为Closed。如果不是,SonarReopen这个review:在下一个早上,你会发现它以reopen的状态重新出现在列表里了(或者收到邮件)。

  如果你关心除了分配给你的Review外其他的review,你可以使用 Sonar review service ,使其允许你查询其他的review包括所有者,分配者,状态,解决方法,对应的项目以及id

 使用Sonar做有效的代码审查 - y_x_r1982 - 杨霞如 

  就是这些了,关于我们怎么使用不同的视图以及人工review来持续改进代码质量的过程。当然你可以采用它或者使用不同的来满足你的要求。但是需要注意的是,不让technical debt失去控制非常的重要。

  更多的功能会支持持续检查这一功能,为任何代码创建review,可以对新错误以开发来过滤,等等。敬请关注!

  评论这张
 
阅读(626)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016