6

我有一个很大的代码库,到处都有很多重复的或几乎重复的代码,它几乎是代码可以得到的 unDRY,但是很难跟踪“重复”,所以我想知道是否有任何工具寻找潜在的 DRYable 代码,比如 diff 工具或 Hamming 距离分析器,不需要语言特定的知识或类似的东西。

那么像这样的工具有什么线索吗?

4

6 回答 6

3

Visual Studio 的克隆侦探

于 2009-03-26T15:22:04.737 回答
2

如果你正在使用 ruby​​,那么你可以试试这个

于 2009-03-26T15:18:13.577 回答
1

Duplo(开源)适用于 C、C++、Java、C# 和 VB.Net。我尝试过一次,它发现了足够多的重复代码让我长期工作。

我听说过Simian(商业),但没有尝试过。

于 2009-03-26T15:21:39.417 回答
1

我在 VS 中使用 Simian。这还不错,不是很好。

于 2009-03-26T15:32:25.960 回答
1

Semantic Designs 的 Clone Dr 是一款商业产品,可以在大量不同的编程语言中查找重复代码。 http://www.semdesigns.com/Products/Clone/index.html

大公司可以负担得起这种产品。个人……没那么多。我希望有一些像这样的开源项目。可能是一个有趣的项目。如果我们只知道一个程序员社区有一些时间......

于 2009-03-26T16:38:23.633 回答
1

Semantic Designs 的CloneDR可以根据语言结构找到准确的和几乎错过的重复克隆,因此它不会被空格更改或换行符、插入/更改的注释甚至修改的变量名所迷惑。

它利用生产解析器前端与 C、C++、C#、Java、COBOL、PHP、Python、Fortran、Ada、...

网站上有许多不同语言的克隆分析报告示例。

于 2010-03-09T10:56:41.400 回答