5

我正在寻找处理具有大约 150k 行代码的遗留 PHP 项目中重复代码的最佳方法。

这是最好的手动方法还是有独立的重复代码检测器可以减轻痛苦?

4

4 回答 4

2

正如其他答案已经提到的那样,这应该手动处理,因为您可能希望在进行过程中更改其他内容以使代码库更清晰。也许实际的调用已经是多余的,或者可以组合类似的片段。

此外,在实践中,人们通常会稍微更改复制的代码,因此通常不会有直接的重复,而是紧密的变体。我担心自动 c&p 检测通常会让你失败。

但是,有一些重构工具可以帮助您准确地执行更改(有时还可以帮助您找到可能的候选者)。谷歌的“php 重构”,有很多可用的工具,包括独立的和作为 IDE 的一部分。

于 2009-02-09T12:11:14.357 回答
2

CloneDR在大型源系统查找重复的代码,包括精确的副本和接近未命中的代码,由语言语法参数化。对于每个检测到的克隆集,它甚至会提出可用于替换克隆的抽象代码草图。

它适用于多种语言,包括 PHP 系统。可以在链接中找到 Joomla(一个 PHP 框架)的示例 PHP 克隆检测报告。

于 2009-08-23T05:40:49.763 回答
1

还请考虑导致此代码重复的过程!

如果您必须更改代码,大多数情况下复制代码比重构代码要快,以便它可以用于您的新用途和旧用途。

所以你必须让人们相信重构比简单的复制更好,因为从长远来看,它可以节省时间,而不是短期。

否则,您会发现自己在两年内搜索到您在此处发布的同一个问题!

于 2009-02-10T12:20:00.637 回答
0

也许这个grep 线程可以帮助你?

于 2009-02-09T09:52:03.817 回答