【问题标题】:Is Cyclomatic Complexity of '267' better?'267' 的圈复杂度更好吗?
【发布时间】:2015-01-30 11:03:45
【问题描述】:

我使用 C# 在 .NET 中开发了一个应用程序。

使用“计算代码指标”选项,我得到了“267”的圈复杂度分数,其中包含 2,348 行代码,继承深度 = 7,类耦合 = 150,可维护性指数 = 80。

我知道圈复杂度越低越好。虽然我不知道其余参数,但我想知道 267 的圈复杂度是否更好?

【问题讨论】:

  • 比什么好?如果没有什么可以比较的话,你不能说它是更好或更坏。
  • 认为在上述所有方面越低越好。确保您关注SOLID
  • 对于可维护性指标,越高越好——“一个介于 0 和 100 之间的指标值,代表代码维护的相对难易程度。值越高表示可维护性越好。颜色编码的评级可用于快速找出代码中的问题点。绿色等级介于 20 到 100 之间,表示代码具有良好的可维护性。黄色等级介于 10 到 19 之间,表示代码可维护性中等。红色等级介于 0 和9 表示可维护性低。”参考:msdn.microsoft.com/en-us/library/bb385914.aspx

标签: c# .net cyclomatic-complexity


【解决方案1】:

圈复杂度通常是指通过代码的独立路径的数量。这在 Visual Studio 中通过以下公式测量:

Complexity = Edges - Nodes + 1

对于任何给定的方法,25 被认为是危险的高,并导致 Visual Studio 引发错误。理想情况下,您希望尽可能降低圈复杂度。尝试瞄准 3-4 并在 10 左右达到最大值。

对于整个项目,这个数字可能不足以在单独的项目之间进行比较。如果您正在重构代码,您可以将其用作一个指标来帮助确定您是否对降低整体复杂性产生了影响。

但是,使用这些类型的指标作为项目运行状况的唯一指标时要小心。如果没有明确的问题或目标,他们可能会误导您并浪费时间或更糟。在尝试降低圈复杂度之前,您最好关注代码覆盖率等另一个指标。

您可以在此处阅读有关圈复杂度的更多信息:
http://msdn.microsoft.com/en-us/library/ms182212.aspx
https://en.wikipedia.org/wiki/Cyclomatic_complexity

【讨论】:

  • 您的数字适用于单个方法的圈复杂度,而我猜测(希望)OP 正在谈论(至少)一个项目的圈复杂度。
  • 我的圈复杂度为 9,265。他们衡量这种变化的方式有变化吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 2013-09-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多