我有一个很大的代码库,到处都有很多重复的或几乎重复的代码,它几乎是代码可以得到的 unDRY,但是很难跟踪“重复”,所以我想知道是否有任何工具寻找潜在的 DRYable 代码,比如 diff 工具或 Hamming 距离分析器,不需要语言特定的知识或类似的东西。
那么像这样的工具有什么线索吗?
我有一个很大的代码库,到处都有很多重复的或几乎重复的代码,它几乎是代码可以得到的 unDRY,但是很难跟踪“重复”,所以我想知道是否有任何工具寻找潜在的 DRYable 代码,比如 diff 工具或 Hamming 距离分析器,不需要语言特定的知识或类似的东西。
那么像这样的工具有什么线索吗?
如果你正在使用 ruby,那么你可以试试这个。
我在 VS 中使用 Simian。这还不错,不是很好。
Semantic Designs 的 Clone Dr 是一款商业产品,可以在大量不同的编程语言中查找重复代码。 http://www.semdesigns.com/Products/Clone/index.html
大公司可以负担得起这种产品。个人……没那么多。我希望有一些像这样的开源项目。可能是一个有趣的项目。如果我们只知道一个程序员社区有一些时间......
Semantic Designs 的CloneDR可以根据语言结构找到准确的和几乎错过的重复克隆,因此它不会被空格更改或换行符、插入/更改的注释甚至修改的变量名所迷惑。
它利用生产解析器前端与 C、C++、C#、Java、COBOL、PHP、Python、Fortran、Ada、...
网站上有许多不同语言的克隆分析报告示例。