标签: architecture software-design redundancy entropy
我继承了一个中等大小的代码库,其唯一的编程范例似乎是 Copy& Paste 。实际上有几十个代码片段可以很容易地参数化并被简单的函数调用取代。代码不是关键任务,因为它只是“测试代码”。然而,这使得纳入变革变得很痛苦。
想到天真的方法:
diff
答案 0 :(得分:7)
您正在寻找的是克隆检测,这是一个既定的研究领域,您可以使用许多工具来检测代码中的克隆。
用于量化代码中冗余量的中心指标称为克隆覆盖。它测量属于冗余部分的代码行的百分比。它可以解释为当您更改随机选择的代码时,也必须在其他位置执行更改的概率。
可以检测克隆并计算克隆覆盖率的工具例如是Teamscale和ConQAT。您可以找到代码克隆和克隆检测的简介here。