采访Clone Detective项目创始人Immo Landwerth

我们采访了Visual Studio开源项目Clone Detective 的创始人Immo Landwerth。该项目利用ConQAT分析副本的C#代码

最初是什么促使你创建Clone Detective呢?

克隆检测是非常通用但仍未得到充分利用的质量工具。代码复制可有多种不同的原因,有懒惰开发人员在编程语言中过度的复制粘贴,也有架构的约束。今天,由于没有工具支持,克隆检测并没得到广泛使用。我们项目的目标就是把克隆检测直接带给开发者——这就是我们创建与Visual Studio集成而非独立工具的原因。

Clone Detective给开发者提供了三项重要功能。前两项非常明显:它允许你运行检测和浏览生成的克隆报告。第三项就没那么明显了。如果今天你开始使用Clone Detective,你的项目就会有若干份克隆。移除副本会导致开销和风险,所以你现在不能马上移除它们。你会找到一种方式来处理它们。第二项功能就在此处发挥作用。Clone Detective标记所有源代码,复制的代码在页边距中会有一紫色条形图。听起来虽不是很形象,但它考虑了最普通的维护用例。某些开发人员正修复项目中的bug。在编码的时候,他注意到紫色条形图,并记住了这表示一份克隆。现在,该开发人员可快速查看其它克隆代码并检查他是否必须对它们应用bug修复。这是处理克隆的一种非常简单方式:保留它们但确保源代码保持一致。

对于你提到的备份代码保留问题,可以使用Clone Detective通知维护人员需要检查该克隆。这项技术是你初始目标的之一,还是你事后发现的呢?

在Munich科技大学的软件能力中心已经有许多使用克隆检测的经验。那意味着对于Clone Detective,保留和维护克隆的问题已经众所皆知,所以这已是一项前提条件。

Clone Detective和ConQAT之间有何联系?

ConQAT是一个连续的质量评估工具包——伴有其他重要特性,例如架构分析——能够执行克隆检测。ConQAT被设计成一种工具,它集成到你的构建过程以生成高级别信息,该信息可以用于创建项目考核中心网站。

Clone Detective是一款Visual Studio托管的用于ConQAT克隆检查的图像用户界面。ConQAT完成所有克隆检测的繁重工作,例如读取和分析源文件。Clone Detective提供可视化和集成功能,以便人们能够快速创建和浏览克隆报告。

现在你们计划暴露其他的ConQAT功能到Visual Studio吗?

没有。然而,我们会暴露出ConQAT所有关于克隆检测的特性,例如文件过滤器、黑名单和模糊克隆等。

查看英文原文:Interview with Clone Detective's Immo Landwerth

译者介绍:王波 匆匆IT过客,涉足于.net编程技术,常驻于51cto论坛.net版块 ,潜心研究和译书,现与友人共译《C# 3.0揭秘》,亦分享心得于博客。

你可能感兴趣的:(采访Clone Detective项目创始人Immo Landwerth)