有什么工具可以检查重复的 VB.NET 代码吗?

问题描述 投票:0回答:9

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

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


更新进度。

我刚刚尝试过Simian。

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

Clone Detective for Visual Studio仅支持C#

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

DuplicateFinder是开源的,但在其他方面看起来非常像Simian,例如它只适用于文本行

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

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


在声称此问题重复之前,请检查其他问题是否涉及 VB.NET,因为许多适用于 C# 的工具不适用于 VB.NET。 (但是,如果这个问题是真正的重复问题,我不会感到惊讶)

vb.net code-analysis static-analysis code-duplication
9个回答
3
投票

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 网站上发布了一些不错的视频。



1
投票

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

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

CloneDR 所依赖的引擎,DMS 软件重新工程工具包” 是一种用于以任何编程语言分析大型系统的工具,并使用语言描述来驱动分析。DMS 已经拥有多种可用的语言前端。

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

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

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


1
投票

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


1
投票

JetBrains 发布了控制台工具集 Resharper Console Tools 用于运行重复分析。安装后,它允许您进行与 TeamCity 相同的分析,并在本地生成重复报告,甚至使用 MSBuild 将重复搜索包含到自定义构建过程中。这个工具正是您所需要的。您可以在 JetBrains 博客文章

找到更多详细信息

0
投票

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


0
投票

尝试Simian相似度分析器

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


-1
投票

卷起袖子,编写你自己的解析器,与CPD一起使用?


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.