它是否存在:重复代码查找器?

Dan*_*ain 18 language-agnostic code-reuse refactoring dry

在不久的将来,我将继承一个有点大的项目.我最近对它进行了一些小的更新,并注意到它的一部分可能会使用一些重构,因为有些方法执行相同的操作,但差别很小.

我想知道是否有一个工具需要一堆源代码并找到类似的代码块,以便可以识别它们以进行可能的重构.如果存在模糊搜索,那将是很好的,因此它可以识别类似的操作(除了只是逐字重复的代码).

我不希望程序重构代码本身,只是确定潜在的重复.

我的平台是C#,但任何解决方案都会有所帮助

lan*_*nce 8

http://www.codeplex.com/CloneDetectiveVS

"Clone Detective是一个Visual Studio集成,允许您分析C#项目以获取在其他地方复制的源代码."

当你把它扔到一个有很多代码重复的项目时,有很多东西在视觉上进行.如果它第一次与你使用克隆侦探结合,一开始可能有点压倒性.

我真的推荐这个工具.这很棒.


Mic*_*hue 5

CPD在令牌级别工作,因此C#应该没问题.它有一些机制可以分解变量名和其他标识符.


Sco*_*ein 5

我从来没有用过它,但是Simian可能会为你工作

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