c# - Visual Studio 中的代码指标计算

标签 c# visual-studio-2008 code-metrics maintainability cyclomatic-complexity

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

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

最佳答案

理论上最优值为:

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

虽然可以做出一些一般性的陈述,但没有硬性规定的“好”范围。

  • 每个方法的圈复杂度较高表明方法变得过于复杂。
  • 继承深度超过 3 或 4 个(您自己的类,而不是框架的)是一个麻烦的迹象,表明您可能不必要地表示实际上不在您的软件域中的抽象关系。
  • 低级耦合通常更好,但有时这是不可避免的。在可能的范围内,您绝对应该尽量减少 namespace 之间的依赖性,因为这里依赖性的原因要少得多。

一个项目只有在本质上什么都不做和无用的情况下才能同时达到所有四个值(value):什么都不做也不依赖什么的软件当然是可维护的,但不是很好地利用客户的钱。

因此,所有复杂性都是一种权衡:额外的所谓固有复杂性将更多的复杂性编码到程序中,使其能够扩展功能集。您希望避免的是意外因实现不当或不完善而引入的复杂性。

关于c# - Visual Studio 中的代码指标计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2033743/

相关文章:

c# - 在保持 Web.Config 安全的同时从 WebMethod 获取错误消息

.net - .Net 前景色的调色板引用?

delphi - Delphi IDE 是如何计算 SLOC 的?

c# - 如何在 .net 中读取具有不同层次结构的 xml 文件

C#:异步运行此代码的不同方法?

visual-studio-2008 - Visual Studio 临时工具和插件

c# - 为什么 Visual Studio IDE 有时会初始化“this.components 对象 : and other times not?

.net - 程序集上的 NDepend 指标

c# - 生产项目的代码指标(C#、Visual Studio)的常用值

c# - 如何从 Word 文档复制富文本内容控件的内容并使用 Open XML SDK 删除控件本身