# 代码复杂度计算Skill

> Skill

- Skill: `sky-cube/skill-32` (Agent Skill)
- Install (CLI): `npx skillmds@latest add sky-cube/skill-32`
- Raw SKILL.md: https://api.skillmd.com/api/skills/sky-cube/skill-32/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: Sky-Cube (https://skillmd.com/u/sky-cube)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/sky-cube/skill-32

---

# 代码复杂度计算Skill

## 适用场景
代码质量度量环节,量化代码复杂度,定位需要重构的高风险代码。

## 执行步骤
1. 选工具:优先运行现有工具(lizard、radon、SonarQube、ESLint complexity 等);无工具时手工统计。
2. 统计口径:圈复杂度 = 判定节点数 + 1(判定节点:if/for/while/case/&&/||/catch/三元)。
3. 按阈值分级,输出 Top 清单。
4. 对超标函数给重构建议(见下)。

## 判定阈值(默认,可按项目调整)
| 复杂度 | 判定 |
|---|---|
| 1-10 | 简单,风险低 |
| 11-20 | 中等,建议简化 |
| 21-50 | 复杂,高风险,必须重构 |
| >50 | 极高风险,不可测试,拆分 |

## 重构建议(对应全局规范「超3层嵌套必须重构」)
- 抽取方法:按职责拆成小函数,主函数只留编排。
- 卫语句:提前 return 减少嵌套。
- 策略/表驱动:多分支 if-else 改策略模式或查表。
- 多态替换条件:同类分支用多态分发。

## 输出模板
```
## 复杂度统计
| 文件 | 函数 | 圈复杂度 | 判定 |
## Top 10 高风险清单(位置 + 建议拆法)
```

## 自检清单
- [ ] 统计口径已说明(工具/手工)
- [ ] 阈值与项目约定一致
- [ ] 超标函数有具体重构建议

