什么应该是JAVA的圈复杂度范围

时间:2013-06-20 12:23:02

标签: java android cyclomatic-complexity

我想知道应该是标准范围的圈复杂度?

这取决于语言或平台,还是所有人都常见?

我正在使用State of Flow - EclipseMetrics这是一个Eclipse插件,可以在构建周期内为您的代码计算各种指标,并通过问题视图向您发出每个指标的“范围违规”的警告。

4 个答案:

答案 0 :(得分:4)

我已提及此链接 - http://www.javaworld.com/community/node/1005

Cyclocmatic complexity = Number of decision points + 1

决策点可能是你的条件语句,如if,if ... else,switch,for循环,while循环等。

下图描述了应用程序的类型。

Cyclomatic Complexity 1 - 10 被视为正常 applicatinon

Cyclomatic Complexity 11 - 20 中等应用程序

Cyclomatic Complexity 21 - 50 冒险应用程序

Cyclomatic Complexity 超过50 不稳定应用程序

答案 1 :(得分:3)

尽可能低,就像任何其他代码一样。 通常,建议将圈复杂度保持在5以下。

实际上,说起来容易做起来难。祝你好运!

答案 2 :(得分:1)

此问题与您的环境无关。如果你为android或Java EE开发没关系。

loopmatoc复杂性只能帮助您保持代码的可维护性。计算机没有高复杂性的问题,但如果复杂性太高,你将无法理解你的代码。

正如Joris所提到的,5的值是一个很好的限制,但实际上有时很难实现。

答案 3 :(得分:1)

圈复合并不依赖于平台或语言。 (参见圈复杂度的定义)

它还取决于您必须解决的任务的固有复杂性。你的代码的复杂性不能低于任务的复杂性,否则代码会被简化并丢失一些东西。

通常,您可以通过重构来降低特定方法的循环复杂性。