圈复杂度衡量

定义

https://en.wikipedia.org/wiki/Cyclomatic_complexity#Definition

简单的理解就是这段代码流程的复杂度, 假设需要单元测试覆盖,需要的 case 数量.
主要体现在

  • if … else … 分支
  • loop
  • && / || 分支
  • switch 分支
  • 嵌套层数
  • 内嵌函数 等

检测工具

vs code 插件 :

 检测方法级别的圈复杂度,并给出增加复杂度的相关代码

使用截图

SonarQube

Sonar 只能检测到文件级别,而且不能标示具体增加的具体行.
所以推荐使用  vsc 的插件

基本优化方案

  •  抽象重用方法
  • 组件拆分
  • 算法优化
  • 其他请 google
  • 拆分方法,尽力做到一个方法只负责一件事