Claude Code 内置技能 · 自动审查代码复用性、质量与执行效率并修复问题
simplify 是 Claude Code 中一个专注于代码优化的内置技能(Slash Command)。当开发者输入 /simplify 时,该技能会自动扫描当前工作区中已被修改(unstaged changed)的代码文件,逐一检查是否存在复用性不足、代码质量缺陷以及执行效率偏低的问题,并在发现后直接给出修改建议或执行修复。
该技能的设计目标是在不改变原有功能逻辑的前提下,让代码变得更简洁、更健壮、更高效。与传统的 Linter 不同,simplify 不只关注语法层面的规范,而是深入语义层面 —— 识别出可复用的模式、潜在的性能陷阱以及可能降低可维护性的坏味道。
核心原则:只改代码结构,不改代码行为。每一次变更都必须保持原有功能完全不变。
simplify 的触发方式非常简洁:在 Claude Code 对话中输入 /simplify 即可。触发后,技能会依次执行以下步骤:
git diff 与 git diff --cached 获取当前工作区中所有已修改但尚未提交的代码文件列表。注意:simplify 仅处理已修改但未提交的代码文件。如果希望它对整个项目做全面审查,需要先确保所有文件都已纳入 git 跟踪且有变更记录。
复用性检查的目标是消除重复代码(DRY 原则),提取公共逻辑,减少维护负担。simplify 会在以下几个层面进行检测:
当多段代码在结构上高度相似甚至完全相同时,simplify 会建议将其提取为函数、循环或配置映射表。例如,多个 if-else 分支中执行了类似的逻辑。
散落在代码各处的魔数(Magic Number)和字符串常量会被建议提取为具名常量或配置文件,提升可读性和可维护性。
当多个文件中出现了相同或相似的工具函数时,simplify 会建议将其合并到一个公共模块中统一引用。
代码质量维度的覆盖范围最广,从命名规范到错误处理均在审查之列。主要包含以下子项:
data、tmp、xxx 等模糊命名会被建议替换。典型案例:深层嵌套的 if 金字塔可以通过"提前返回"模式大幅简化,既降低了圈复杂度,又使主逻辑路径更清晰。
效率检查关注代码在运行时对计算资源和内存的利用是否合理。simplify 会识别以下常见的性能反模式:
| 反模式 | 问题描述 | 优化建议 |
|---|---|---|
| 循环内重复计算 | 在 for 循环的条件中反复调用 .length 或执行耗时计算 |
将不变量提到循环外部缓存 |
| 不必要的数组/对象拷贝 | 使用 Array.map() 后再 .filter() 产生两次遍历 |
合并为一次遍历或使用 flatMap/reduce |
| 低效的数据结构 | 高频查找场景下使用数组而非 Set/Map | 替换为更适合查找的数据结构 |
| 重复 DOM 查询 | 在同一个函数内多次调用 document.querySelector |
将查询结果缓存到变量中 |
| 冗余计算 | 多次调用同一纯函数且参数不变 | 使用记忆化(memoization) |
特别提醒:simplify 不会做激进的性能优化 —— 它只解决那些"明显得不偿失"的低效写法,避免引入不必要的复杂度。
simplify 的底层依赖 Claude Code 的代码理解能力,而非传统的静态分析规则集。这意味着它具有以下几项独特优势:
当 simplify 发现一个问题时,它会以结构化的方式呈现:首先是问题描述与影响评估,然后是问题代码的具体位置,最后是建议的优化代码。在用户确认后,它会直接编辑文件完成修改。
simplify 在以下场景中特别有用:
/simplify,清理掉明显的代码问题,减轻 Reviewer 的负担。推荐工作流:git add 之前先执行 /simplify,让代码在进入暂存区前就完成一轮自动优化。
以下列出 simplify 在实际项目中最常发现的几类改进,并附上前后对比:
提示:以上是简单示例。实际项目中 simplify 发现的优化往往涉及跨多行的复杂重构,但始终遵循"语义不变"的原则。
为了最大化 simplify 的价值,建议遵循以下实践:
/simplify,而不是积攒大量变更后一次性处理。增量使用可以让每次优化更聚焦、风险更可控。git diff 查看 simplify 所做的每项修改,理解其变更逻辑。这不仅有助于学习,也能在必要时回退特定改动。| 特性 | simplify | ESLint | Prettier | SonarQube |
|---|---|---|---|---|
| 定位 | 语义级代码优化 | 语法与规则检查 | 代码格式化 | 代码质量平台 |
| 自动修复 | 是 | 部分支持 | 是 | 仅建议 |
| 理解重复语义 | 是 | 有限 | 否 | 有限 |
| 跨文件分析 | 是 | 否 | 否 | 是 |
| 集成方式 | Slash Command | CLI / 插件 | CLI / 插件 | CI / IDE |
simplify 的核心理念:
好的代码不是写出来的,是改出来的。simplify 让"改"这个环节变得更智能、更高效。它不只是一个检查工具,更是一个编码伙伴 —— 在开发者专注于功能逻辑时,帮忙守住代码质量和架构一致性的底线。
在日常开发中养成使用 /simplify 的习惯,就能以极小的成本持续保持代码库的健康度,避免技术债务的累积。
总结来说,simplify 的价值体现在三个层面:
以下技能与 simplify 有相似的优化理念,可配合使用:
此外,建议定期使用 /simplify 对核心模块进行代码健康检查,将代码优化融入日常开发循环,而不是留到重构周集中处理。