是否有自动工具来查找代码库的DRY-ness?

时间:2011-12-16 22:35:50

标签: dry

我是DRY principle

的坚定拥护者
  

每一段知识都必须在系统中具有单一,明确,权威的表示。

是否有任何工具可以测试干燥量的代码库,并量化和精确定位特定的修正示例?

4 个答案:

答案 0 :(得分:2)

Simian

  

Simian(相似性分析器)识别Java,C#,C中的重复,   C ++,COBOL,Ruby,JSP,ASP,HTML,XML,Visual Basic,Groovy源代码   代码甚至纯文本文件。事实上,猿猴可以用于任何   人类可读的文件,如ini文件,部署描述符,您   把它命名。

     

Simian在任何支持.NET 1.1或更高版本的环境中本机运行   在任何Java 5或更高版本的虚拟机上,都可以运行Simian   几乎任何硬件和任何你可以希望的操作系统。   Java和.NET运行时都包含在内   分布。

答案 1 :(得分:1)

PMD的Copy Past Detector (CPD)

  

重复的代码很难找到,特别是在大型项目中。但   PMD的复制/粘贴检测器(CPD)可以为您找到它!

     

请注意,CPD适用于Java,JSP,C,C ++,Fortran和PHP代码。

您可以运行命令行,有一个ANT任务和一个Eclipse插件。

答案 2 :(得分:1)

请参阅我们的CloneDR工具,该工具使用计算机语言结构作为指南查找重复代码的精确和接近错过集。除了检测克隆外,它还会显示粗略的抽象和解释克隆实例之间差异的参数绑定。

它具有许多语言的实例化:C,C ++,C#,Java,JavaScript,PHP,COBOL,Python,PLSQL,......它往往会在具有任何严重大小的系统中找到10-15%的重复代码(例如,100K SLOC及以上)。网站上有许多语言的样本报告,您可以下载试用版。

答案 3 :(得分:1)

Clone Detective for Visual Studio

  

Clone Detective是一个允许您使用的Visual Studio集成   分析C#项目以获取在其他地方重复的源代码。   重复可能很容易导致不一致,而且经常是一个问题   代码不足的指标。

enter image description here