【问题标题】:Which is the more important code quality metric - between cyclomatic complexity or average fan out?哪个是更重要的代码质量指标 - 在圈复杂度或平均扇出之间?
【发布时间】:2019-02-21 12:12:58
【问题描述】:

我是第一次研究 TICS 代码质量指标,我有这个问题。

许多人建议将大型函数分解为一个或多个函数,以保持复杂度小于 15。这样做会增加给定函数调用的函数数量,因此会增加平均扇出。

我们应该决定减少扇出还是减少圈复杂度?降低圈复杂度会提高可维护性,但将函数拆分为 2 个或更多函数会增加函数调用的次数,这会占用大部分内存。

那么这两个指标中哪一个更需要改进?

【问题讨论】:

  • 根据我的经验,告诉您应该对某个软件进行哪些更改的最佳指标是熟练软件工程师的判断(或者更好的是,他们中的一些人的判断)。正式的指标往往是为了实现类似但更便宜的目标。但是,再一次,你得到你所支付的。

标签: static-analysis code-metrics cyclomatic-complexity


【解决方案1】:

我怀疑你会找到一个明确的答案。一般来说,我建议更多地担心圈复杂性而不是扇出。您可以使用提取方法重构来降低方法的圈复杂度。假设您提取的新方法具有易于命名的特定目的,您将用这些条件的摘要(提取的方法)替换详细的逻辑(各种条件)。这应该使代码更易于阅读和维护。

【讨论】:

    【解决方案2】:

    所有软件质量度量(包括圈复杂度和扇出)充其量都是不可靠的质量度量。我强烈警告不要仅仅为了它而尝试改进任何指标。

    但是,度量标准可以可靠地用于将您的注意力吸引到可能需要注意的代码上。如果某个类或方法在某些指标上得分不佳,则值得查看它并确定是否确实存在应该修复的问题,但最终应该由开发人员判断应该采取什么行动。

    【讨论】:

      猜你喜欢
      • 2015-05-11
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2021-09-24
      • 2016-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多