我们注意到SonarQube java插件中有一条关于认知复杂度的新规则,“方法的认知复杂度不能太高”,但我们不明白该规则使用的是哪一个度量。
是否有一个新的度量或一个旧的度量(另一个名称)被重用?
谢谢
马西莫
这一规则依赖于新的“认知复杂性”度量--你可以在下面的PDF中阅读定义:“认知复杂性--测量可理解性的新方法”。
请注意,它不同于“Cyclomatic复杂性”(SonarQube中一直提供的原始复杂性),后者是度量代码可测试性的一种方式。
我理解认知复杂性是什么,以及如何计算它,但我现在不知道如何确定这个度量的好值,所以我的代码没有多复杂。我需要一个客观的方法来估计它,而不是比较项目彼此。类似于“复杂性/行代码”之类的公式。或者,如果我为一个大项目定义了一个质量门,我如何计算它的值。
对于下面的JavaScript函数,我试图找出如何降低认知复杂性。
null 提前谢了。
我有一段认知复杂度为21的代码 我知道这可能是个人观点,但我正在寻找真正的解决方案或答案,从那些以前有过类似情况的人那里。 编辑:我无法从我正在工作的开发机器上访问许多库和包。我可以访问一些(太多了,无法列出),所以请注意这一点,然后建议使用一个。
我在重构这部分代码时遇到了问题。如何降低该代码的认知复杂性