Aks*_*wal 2 optimization code-readability kotlin sonarqube
如今,我切换到声纳报告以进行静态代码检查和性能改进。在规则部分,我发现我的方法的认知复杂性很高。
您可以在声纳中找到认知复杂性错误,方法如下:转到“ 项目”->“问题”选项卡->“规则”下拉菜单->“认知复杂性”
下面的屏幕截图为您提供了声纳项目的参考:
我没有任何方法来计算和减少方法的认知复杂性。最后,我找到了计算复杂度的准确方法,我将在下面的文章中回答。请退房。
认知复杂性
搜索一些博客并与声纳团队聊天后,我发现了一个简单的定义和认知复杂度的计算方法如下:
定义:
认知复杂性,因为可测性=可理解性
您的书面代码必须像上述定义一样简单易懂。
更少的认知复杂性,更多的可读性
让我们看一个例如计算CC的方法,现在我指的是Kotlin语言,请参见下图:
在上图中,有一种方法getAppConfigData()正在测量其认知复杂性。现在,此方法的CC为18。正如您可以在上面的屏幕快照中检查的那样,有一个警告,告诉您最大复杂度的限制为15,这比该方法的当前CC低。
现在的实际问题是,在开发时如何计算方法的CC?
请遵循以下规则,将任何方法或类的CC设置为:
因此,只要上述规则匹配,只需在CC中添加+计数,并记住计数将根据代码中断的级别而增加,例如,如果“ if”条件是第一个代码中断,但如果您使用了另一个嵌套,则条件为+1如果是,则该内部“ if”将为+2,如下图所示。
就认知复杂性而言,这就是我所得到的。
您可以在声纳博客中找到与CC相关的所有内容
谢谢
| 归档时间: |
|
| 查看次数: |
3802 次 |
| 最近记录: |