我希望快速了解一下我们有多少“复制粘贴”编码,有很多 C# / Java 工具可以检查此类事情。有没有与 VB.NET 配合良好的此类工具?

(我已经看到看起来有很多重复的代码,但希望得到一些数字来帮助我提出整理的理由)


更新进展。

我刚刚尝试过猿猴。

克隆医生 不支持 VB.NET(仅 C# 和 VB 6 以及许多其他)
2010 年 10 月:VB.net 添加到 CloneDR 支持的语言中

Visual Studio 的克隆侦探 仅支持 C#

SolidSDD - 源代码重复检测器 仅支持 C、C++、C# 和 Java

重复查找器 是开源的,但在其他方面看起来与 Simian 非常匹配,例如它只适用于文本行

ConQAT - 持续质量评估工具包 似乎有一个适用于 VB.NET 的克隆检测器 (还没试过)

宪兵 有点像 FXCop 并且有一个 避免同一类规则中的代码重复 规则,这看起来非常有前途,因为它避免了在文本级别工作的问题。 刚刚尝试了一下,这是迄今为止最好的解决方案,可惜没有更大范围的搜索。


在声称此问题重复之前,请检查其他问题是否解决 网络, ,因为很多工具都可以很好地工作 C# 不太适合 网络. 。(但是,如果这个问题是真正的重复问题,我不会感到惊讶)

有帮助吗?

解决方案 9

请参阅我找到的工具的问题。

其他提示

CodeRush 11.2 引入了一项称为重复检测和合并 (DDC) 的新功能

http://community.devexpress.com/blogs/markmiller/archive/2011/11/29/duplicate-detection-and-consolidation-in-coderush-for-visual-studio.aspx

请务必检查它的选项,因为当更改了如此多的行、当然时间已经过去等时,您可以让它运行。

他们也在 DevExpress 网站上发布了一些不错的视频。

[我是作者 CloneDR(“克隆医生”).]

CloneDR 通过相关编程语言的完整语法进行参数化。所以它不仅仅是匹配线条。相反,它可以找到语法良好的克隆,其变体不仅仅是标识符更改,无论它们在一行中的何处停止或开始。

CloneDR 所依赖的引擎, DMS 软件再造工具包” 是一种用任何编程语言分析大型系统的工具,并使用语言描述来驱动分析。DMS 已提供多种语言前端。

目前它有 VBScript 和 VB6(作为“Visual Basic”的方言)。它没有 VB.net,但考虑到 DMS 基础设施和我们在许多其他语言方面的经验,这将是非常简单的。

因此,CloneDR 可以很好地做到这一点,只需我们付出一点努力。

2010 年 10 月编辑:添加 VB.net 作为 CloneDR 可以处理的语言。

原子 支持 vb.net 等其他语言,并且结果很好地呈现。

JetBrains 发布控制台工具集 Resharper 控制台工具 运行重复分析。安装后,它允许您进行与 TeamCity 相同的分析,并在本地生成重复报告,甚至使用 MSBuild 将重复搜索包含到自定义构建过程中。这个工具完全可以满足您的需要。您可以在 JetBrains 找到更多详细信息 博客文章

尝试 猿猴:

Simian(相似性分析器)可识别 Java、C#、C、C++、COBOL、Ruby、JSP、ASP、HTML、XML、Visual Basic、Groovy 源代码甚至纯文本文件中的重复。

我曾经看过一个令人印象深刻的 Pattern Insight 演示;它的 CP Miner 可能就是您正在寻找的: http://patterninsight.com/products/cp-miner.php. 。它似乎与语言无关,尽管我找不到任何关于 C/C++ 以外的语言的明确信息。

卷起袖子来写吧 你自己的解析器 与它一起使用 持续专业发展?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top