41

以下代码指标计算的首选分数范围是多少

  • 可维护性指数
  • 圈复杂度
  • 继承深度
  • 类耦合
4

2 回答 2

65

理论上的最佳值为:

  • 可维护性指数:100。值越高表示可维护性越好。
  • 圈复杂度: 1. 代码可以采用的不同路径的数量。
  • 继承深度: 1. 继承树中在此之上的类定义的数量,不包括接口。
  • 类耦合:0。此实体所依赖的其他实体的数量。

没有硬性和快速的“好”范围,尽管可以做出一些一般性的陈述。

  • 具有高每个方法的圈复杂度表明方法变得过于复杂。
  • 继承深度超过大约 3 或 4(您自己的类,而不是框架的)是一个麻烦的迹象,表明您可能不必要地表示不在您的软件领域中的抽象关系。
  • 低类耦合通常更好,但有时它是不可避免的。在可能的范围内,您绝对应该最小化命名空间之间的依赖关系,因为这里的依赖关系要少得多。

一个项目只能通过本质上什么都不做和无用同时达到所有四个价值:什么都不做并且不依赖任何东西的软件当然是可维护的,但不能很好地利用客户资金。

因此,所有复杂性都是一种权衡:额外的所谓固有复杂性将更多复杂性编码到程序中,允许它扩展功能集。您要避免的是由糟糕或有缺陷的实现引入的意外复杂性。

于 2010-01-09T15:05:09.707 回答
0

在过度依赖它(或完全依赖它)之前,请查看以下页面,其中提供了有关如何计算指标的更多详细信息:

https://avandeursen.com/2014/08/29/think-twice-before-using-the-maintainability-index/

VS 的可维护性指数是一个验证不佳的指标组合,它本身依赖于一个指标(圈复杂度),该指标已被证明与代码可理解性无关(因此与可维护性无关)。请参阅 Scalabrino 等人的“自动评估代码可理解性:我们有多远?”。和https://shape-of-code.com/?s=cyclomatic+complexity

此外,该指标中使用的常量和函数选择尚未在 C# 或 VB 代码上进行校准,这进一步使其无用。

(这通过指出甚至不应该问原始问题来解决原始问题。)

于 2022-01-04T16:53:58.100 回答