我希望能够快速了解我们有多少“复制和粘贴”编码,有很多工具可供C#/ Java检查这类事情。有没有这样的工具可以很好地与VB.NET一起使用?
(我已经看到了很多重复代码的内容,但希望得到一些数字来帮我解决问题)
进展更新。
我刚刚尝试过Simian。
Clone Doctor不支持VB.NET(只有C#和VB 6以及其他很多)
2010年10月:VB.net添加到CloneDR支持的语言
Clone Detective for Visual Studio仅支持C#
SolidSDD - Source Code Duplication Detector仅支持C,C ++,C#和Java
DuplicateFinder是开源的,但看起来非常匹配像Simian,例如它只适用于文本行
ConQAT - Continuous Quality Assessment Toolkit seems to have a clone detector that works for VB.NET(尚未尝试过)
Gendarme有点像FXCop并且有AvoidCodeDuplicatedInSameClassRule规则,这看起来非常有前景,因为它避免了在文本级别工作的问题。 刚尝试过,它是迄今为止最好的解决方案,可惜它没有更广泛的搜索范围。
在声明此问题重复之前,请检查其他问题是否解决了 VB.NET ,因为许多适用于 C#的工具不适用为 VB.NET 工作得很好。 (但如果这个问题真的重复,我不会感到惊讶)
答案 0 :(得分:3)
CodeRush 11.2引入了一项名为Duplicate Detection and Consolidation(DDC)的新功能
确保检查它的选项,因为你可以在更改了很多行时运行,当然时间已经过去等等。
他们也在DevExpress网站上发布了一些不错的视频。
答案 1 :(得分:1)
答案 2 :(得分:1)
[我是CloneDR ("Clone Doctor")的作者。]
CloneDR通过所讨论的编程语言的完整语法进行参数化。所以它不仅仅匹配线条。相反,它可以找到语法上格式良好的克隆,其变化不仅仅是标识符更改,无论它们停在哪里或从一行开始。
CloneDR所依赖的引擎The DMS Software Reengineering Toolkit"是一种用于分析任何编程语言的大规模系统的工具,并使用语言描述来推动分析。 DMS有各种各样的语言前端。
目前它有VBScript和VB6(作为“Visual Basic”的方言)。它没有VB.net,但鉴于DMS基础设施和我们使用许多其他语言的经验,这将非常简单。
所以,CloneDR可以做到这一点,只需要我们付出一点努力。
2010年10月编辑:VB.net添加为CloneDR可以处理的语言。
答案 3 :(得分:1)
Atomiq支持vb.net以及其他语言,结果很好。
答案 4 :(得分:1)
JetBrains发布了控制台工具集this以运行复制分析。安装后,它允许您进行与TeamCity相同的分析,并在本地生成重复报告,甚至包括重复搜索到MSBuild的自定义构建过程。该工具完全符合您的需求。您可以在JetBrains Resharper Console Tools
找到更多详细信息答案 5 :(得分:0)
尝试Simian:
Simian(相似性分析器)识别Java,C#,C,C ++,COBOL,Ruby,JSP,ASP,HTML,XML,Visual Basic,Groovy源代码甚至纯文本文件中的重复。
答案 6 :(得分:0)
我曾经看过一个令人印象深刻的Pattern Insight演示;其CP Miner可能正是您所寻找的:http://patterninsight.com/products/cp-miner.php。它似乎与语言无关,但我找不到任何关于C / C ++以外语言的明确内容。
答案 7 :(得分:-1)
卷起袖子并写上your own parser以便与CPD一起使用?
答案 8 :(得分:-1)
查看我找到的工具的问题。