代码之家  ›  专栏  ›  技术社区  ›  Akshay Paliwal

声纳报告中的认知复杂性是什么?

  •  0
  • Akshay Paliwal  · 技术社区  · 6 年前

    你可以在声纳中发现认知复杂性错误: 去 项目->问题选项卡->规则下拉列表->认知复杂性

    enter image description here

    我没有得到任何方法来计算和减少我的方法的认知复杂性。最后,我找到了计算复杂性的准确方法,我将在下面的帖子中回答这个问题。请退房。

    1 回复  |  直到 6 年前
        1
  •  24
  •   RubioRic Danail Tsvetanov    5 年前

    认知复杂性

    在搜索了一些博客并与sonar团队聊天后,我发现了一个简单的认知复杂性定义和计算方法,如下所示:

    定义:

    认知复杂性,因为可测试性!=可理解性

    较少的 认知复杂性 可读性

    让我们看一个计算的方法示例 ,现在我指的是科特林语,见下图:

    Sonar capture

    上图中有一个方法 getAppConfigData() ,其认知复杂性正在被测量。现在这个方法的CC是 18 . 你可以在上面的屏幕截图中看到一个警告,它告诉你最大复杂度的极限是 ,低于此方法的当前CC。

    现在真正的问题是: 如何计算开发时方法的CC?

    跟随下面 要获取任何方法或类的CC,请执行以下操作:

    • 从左到右)代码流
    • 结构断裂时的增量 流是嵌套的
    • 将多行代码压缩为一行

    enter image description here

    认知复杂性 .

    你可以在 sonar blog

    谢谢您