代码度量值

现代软件应用程序复杂性的增加也增加了使代码可靠和可维护的难度。 代码指标是一组软件度量,可让开发人员更好地了解他们正在开发的代码。 通过利用代码指标,开发人员可以了解哪些类型或方法应该重新设计或进行更彻底的测试。 开发团队可以识别潜在风险,了解项目的当前状态,并在软件开发过程中跟踪进度。

开发人员可以使用 Visual Studio 生成代码度量数据,以度量其托管代码的复杂性和可维护性。 可以为整个解决方案或单个项目生成代码指标数据。

有关如何在 Visual Studio 中生成代码度量数据的信息,请参阅 如何:生成代码度量数据

软件测量

以下列表显示了 Visual Studio 计算的代码度量结果:

  • Maintainability Index (可维护性指数 ) - 计算一个介于 0 和 100 之间的指数值,该值表示维护代码的相对难易程度。 高值意味着更好的可维护性。 颜色编码的评级可用于快速识别代码中的问题点。 绿色评级介于 20 到 100 之间,表示代码具有良好的可维护性。 黄色评级介于 10 到 19 之间,表示代码的可维护性适中。 红色评级是介于 0 和 9 之间的评级,表示可维护性低。 有关详细信息,请参阅 可维护性指数范围和含义

  • 圈复杂度 - 测量代码的结构复杂度。 它是通过计算程序流中不同代码路径的数量来创建的。 具有复杂控制流的程序需要更多的测试才能实现良好的代码覆盖率,并且易于维护性较差。 有关更多信息,请参阅 圈复杂性

  • Depth of Inheritance - 指示相互继承的不同类的数量,一直追溯到基类。 Depth of Inheritance 类似于类耦合,因为基类中的更改可以影响其任何继承的类。 此数字越高,继承越深,基类修改导致中断性变更的可能性就越高。 对于 Depth of Inheritance (继承深度),低值表示良好,高值表示差。 有关更多信息,请参阅 继承深度

  • 类耦合 - 通过参数、局部变量、返回类型、方法调用、泛型或模板实例化、基类、接口实现、外部类型上定义的字段和属性修饰来测量与唯一类的耦合。 好的软件设计决定了类型和方法应该具有高内聚和低耦合。 高耦合表示设计难以重用和维护,因为它与其他类型存在许多相互依赖关系。 有关更多信息,请参阅 类耦合

  • 源代码行 数 - 指示源文件中存在的源代码行的确切行数,包括空行。 此指标从 Visual Studio 2019 版本 16.4 和 Microsoft.CodeAnalysis.Metrics (2.9.5) 开始提供。

  • 可执行代码行 数 - 指示可执行代码行或作的大致数量。 这是可执行代码中的作数计数。 此指标从 Visual Studio 2019 版本 16.4 和 Microsoft.CodeAnalysis.Metrics (2.9.5) 开始提供。 该值通常与前面的指标 Lines of Code 非常匹配,后者是 legacy 模式中使用的基于 MSIL 指令的指标。

匿名方法

匿名方法只是没有名称的方法。 匿名方法最常用于将代码块作为委托参数传递。 在成员中声明的匿名方法(如方法或访问器)的代码度量结果与声明该方法的成员相关联。 它们与调用该方法的成员无关。

生成的代码

某些软件工具和编译器会生成添加到项目中的代码,而项目开发人员看不到或不应更改这些代码。 大多数情况下,Code Metrics 在计算指标值时会忽略生成的代码。 这使指标值能够反映开发人员可以看到和更改的内容。

为 Windows 窗体生成的代码不会被忽略,因为它是开发人员可以看到和更改的代码。