【问题标题】:How to measure redundancy in code bases? [closed]如何衡量代码库中的冗余? [关闭]
【发布时间】:2015-08-02 18:49:26
【问题描述】:

我继承了一个中等规模的代码库,其唯一的编程范式似乎是复制和粘贴。实际上有几十个代码 sn-ps 可以很容易地参数化并被一个简单的函数调用替换。该代码不是关键任务,因为它是“唯一”测试代码。然而,这使得合并更改变得很痛苦。

  • 是否有任何衡量冗余量的指标(研究中)?
  • 如何计算它们的值?

想到的幼稚方法:

  • 看看代码的压缩(压缩)效果如何。
  • 成对diff 所有文件并计算相等或相似的行数。类似于:只有一个词不同。

【问题讨论】:

  • 它是什么编程语言? InteljIdea 有一些不错的代码重复检测 (php/java/javascript)。 “逻辑重复”恐怕只有人眼才能发现
  • 这是VBScript,所以我可能会不知所措......

标签: architecture software-design redundancy entropy


【解决方案1】:

您正在寻找的是克隆检测,这是一个成熟的研究领域,有许多工具可用于检测代码中的克隆。

用于量化代码中冗余量的核心指标称为克隆覆盖率。它测量属于冗余部分的代码行的百分比。它可以解释为当您更改随机选择的一段代码时,更改也必须在另一个位置执行。

可以检测克隆和计算克隆覆盖率的工具有TeamscaleConQAT。您可以找到关于代码克隆和克隆检测的介绍here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-09
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多