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

\

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

\

\

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

\

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

\

Clone Detective的下一版本甚至能够找到“模糊克隆”。这些克隆几乎是一样的,但有些不同。这些克隆特别有趣,因为它们也许在你的基础代码中表现的并不一致。

\

\

对于你提到的备份代码保留问题,可以使用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相关推荐

  1. Clone Detective java home

    运行Clone Detective 分析时出错,因为ConQAT是个java项目,CD用它来分析代码的,所以必须安装jre. 安装好jre后将其java home目录,也就是bin目录拷贝到CD的设置 ...

  2. 【SDCC讲师专访】Swoole开源项目创始人韩天峰:PHP是最好的编程语言

    摘要:SDCC 2015召开在即,大会前夕,笔者联系上了韩天峰,请他分享他与PHP的不解之缘并解读PHP的发展现状.关于PHP7和HHVM的性能之争,在他看来,PHP7才是未来的方向. 韩天峰,车轮互 ...

  3. 假如开源项目创始人去世了,项目怎么办? - 知乎精华

    That's what Open Source for. Firefox 是怎么来的?是因为当年 Netscape 网景公司在倒闭之前开放了自己所有的源代码.因此使这个项目得以继续,虽然是一个新的名字 ...

  4. git clone公司项目的代码到本地

    首先下载git https://npm.taobao.org/mirrors/git-for-windows/ 通过上面的网址选择下载会更快一些,去官网上下载太慢慢慢了 下完之后,右键鼠标点击git ...

  5. 超详细git clone一个项目的方法

    1.首先新建一个存项目的文件夹 比如说,我有一个名为travel的文件夹,将我之后clone下来的文件夹都放到这个文件夹下,那么我需要在vscode里先打开这个文件夹,接着打开vscode里的终端,我 ...

  6. 乐观积极,正视本土开源—— 国内无人机开源项目创始人如是说

    点击上方"开源社"关注我们 | 作者:MasterPa | 转载自:知乎 | 编辑:王玥敏 | 责编:Corrie 本文转载自知乎问题:如何看待近几年国内开源的现状?你是如何理解开 ...

  7. 从coding.net 克隆(git clone)项目代码到本地报无权限(403)错误 解决方案

    从coding.net 克隆(git clone)项目代码到本地报无权限(403)错误 解决方案 参考文章: (1)从coding.net 克隆(git clone)项目代码到本地报无权限(403)错 ...

  8. IDEA打开clone的项目编译时出现java: 程序包org.springframework.boot不存在。

    当我们从远程clone下一个项目用Idea打开时,需要配置springboot等环境,不然会有关springboot的模块都会报错.当出现java: 程序包org.springframework.bo ...

  9. Git的安装教程(完成clone一个项目到本地)

    官网下载安装包地址:点击进入 https://git-scm.com/download/win 但是官网下载比较慢,我们这里选择国内阿里镜像点击进入 https://npm.taobao.org/mi ...

最新文章

  1. 三层交换网络的各层职责
  2. MFC状态栏编程(显示系统时间和进度条)
  3. Modbus协议栈应用实例之一:Modbus RTU主站应用
  4. Exchange 2013 、Lync 2013、SharePoint 2013
  5. 高性能javascript读书笔记(三.DOM 编程2)
  6. JNI中访问JList的代码
  7. 元器件封装形式对照表_二三极管封装形式图表
  8. LinAlgError: SVD did not converge
  9. AD16创建元器件库步骤
  10. java新闻网站项目描述_基于jsp的新闻网站-JavaEE实现新闻网站 - java项目源码
  11. 方向导数和梯度的辨析
  12. 3D建模你不知道的电影角色秘密
  13. jenkins发送邮件添加附件
  14. 程序员节华为这么玩?就说好不好!
  15. 背景图片的精灵图的使用
  16. 第一个PWA程序-聊天室
  17. SOI七层模型和TCP/IP五层协议:
  18. Java数据结构第五版期末考试_数据结构(java)期末复习
  19. 人才公司环境与企业文化
  20. 硬盘数据丢失怎么办?一招轻松恢复硬盘数据!

热门文章

  1. cv2图像修补inpaint
  2. bobsmith电路阻抗原理_网口接口电路的EMC设计.ppt
  3. 多层感知器用实际例子和Python代码进行解释情绪分析
  4. 在卸载完WPS后,WORD,PPT,EXCEL图标无法正常显示的解决方法
  5. 2018数学建模国赛
  6. Nt系列函数与Zw系列函数的关系
  7. com2引脚 proface_台达触摸屏rs485使用com2的那两个端子啊?
  8. android studio freeline,Android Studio配置freeline遇到的问题
  9. 到底怎样选择LoRaWAN网关?这些事一定要注意
  10. Csharp 判断UNICODE字符是否属于汉字