标准 .NET 项目的可维护性指数值应该是多少?

What should be the value of Maintainability Index for a standard .NET project?

我正在处理多个企业级 .NET 项目。作为代码审查任务的一部分,我们使用 Visual Studio 工具计算这些项目的代码指标(可维护性指数和圈复杂度)。

现在,对于可维护性指数,MSDN 博客建议的可接受范围(即绿色区域!)是 20-100。但就指标而言,这个范围相当大。

我一直想知道我们应该在代码中实现的理想值是多少。一些行业专家建议范围为 40-50。但这纯粹是一种选择,没有任何具体原因。

我看到了以下链接,但它们没有建议任何标准。

这个问题没有正确答案。还有不少"it depends"个问题:

  • 有些方法很复杂,但并不难维护。一个例子是 Automapper 配置,其中包含许多相对简单的 lambda。每个都是单独阅读的,而且非常流利。他们可能几乎会变成红色,但他们会没事的。与一大堆单独的方法相比,我更喜欢长的 Automapper 配置。
  • 旧版本的 Metrics(我看到你被标记为 )特别容易受到 Lambda 表达式、委托和其他在后台生成代码的项目的影响。 2013 年的变体处理得更好,2015 年的变体(至少在 IDE 中)取决于 Roslyn,并且真正适用于 您的 代码..
  • 名称不好的代码比名称好的代码更难阅读,可维护性指数无法将这种可读性考虑在内。
  • 代码布局也可以帮助或破坏代码的可读性。有没有试过阅读 Javascript 的缩小版?这些将获得完全相同的可维护性指数得分!

除此之外,Visual Studio 的标准阈值相当宽松。我记得 Visual Studio 团队有人说过,设置太紧会使普通客户的代码过多地标记为橙色或红色,从而使人们讨厌该工具,因此使用了稍微更宽容的设置。这就是为什么许多代码库已经很好的人倾向于使用更严格的数字的原因。

Metrics Codelens add-on or Visual studio 2013 Ultimate 显示更好的标准分数:

绿色使用 60-100。

你问的正确设置是什么... well it can be anything between 0 and 100, as that's the range the maintainability index floats between since they re-calibrated it.

20 以上还算不错,60 以上就不错了。你肯定会有例外,进一步分解不会增加可读性,只会模糊代码的意图。因此,如果你想要更好的东西,也许可以使用 Codelens 使用的那些,但不要打开一条笼统的规则说 所有代码应至少为 80,所有开发人员都会讨厌你它,它不会像您希望的那样富有成效:)。