关于 refactor-code
refactor-code 是用于改进代码可读性、结构和可维护性的重构技能,面向在保持现有行为的前提下整理代码的开发者。它强调先理解测试与本地模式,再进行小步修改并验证。
主要功能
- 01保留现有行为和公共接口
- 02参考代码库中的相似实现
- 03拆分函数并理顺控制流
- 04减少重复并清理无用代码
- 05收窄类型并提取常量
- 06每次修改后运行测试
适用场景
- 01整理过长或难以理解的函数
- 02处理重复代码和复杂条件
- 03替换 any 类型并改善类型边界
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ shipshitdev/ skills --skill refactor-code安装后在 Claude Code 中输入/refactor-code确认已加载。
附带文件plugin.json
详细介绍
重构代码
在不改变行为的前提下,提升代码的可读性、内聚性和可维护性。
重构这一垂直领域(/refactor code)的 code 引擎。在类型架构工作中借鉴
typescript-expert(其 references/rules/ 库),在组件架构工作中借鉴 react-refactor。如需机械式移除 AI 臭味代码,请使用 deslop;如需只读式结构审查,请使用 structural-review。
触发条件
- 函数超过 50 行
- 文件超过 300 行
- 重复代码(3 处及以上)
- 条件语句复杂(嵌套超过 3 层)
any类型- 难以测试或理解
- 命名含糊、职责混杂
- 无用的抽象、死代码或误导性注释
步骤
1. 先锁定行为
- 编辑前阅读现有测试
- 如果行为不明确,根据当前调用方和运行时路径推断
- 除非明确要求修改 API,否则保留公共契约
2. 研究本地模式
在代码库中查找 3 个以上类似实现。遵循其命名、错误处理、文件结构和测试风格。引入新的抽象前,先复用现有辅助工具。
3. 为清晰度而重构
小步、渐进式修改——每次只改一处。按以下优先级处理:
- 改进命名
- 缩小函数范围、明确职责(将较长的方法提取为辅助函数)
- 理清控制流
- 消除重复
- 移除死代码和误导性注释
- 收窄类型和接口(用合适的类型替换
any) - 提取常量(替换魔法数字/字符串)
- 提取服务/组件(将业务逻辑移出控制器,拆分大型组件)
4. 避免过度设计
- 不要仅仅因为某种模式流行就引入它
- 优先采用直白的代码,避免巧妙的间接处理
- 只有在确实能减少重复或消除困惑时才提取抽象
5. 每次修改后运行测试
bun run test <specific-test-file>
启发式原则
- 一个函数只做一件事
- 名称应说明意图,而不是实现细节
- 注释应解释原因,而不是复述代码已有的内容
- 条件语句应从上到下清晰易读,无需在脑中来回推演
- 共享逻辑应集中在一处,但不能以产生难以理解的抽象为代价
危险信号(停下来重新评估)
- 使用
data、item、temp、helper、util等泛化名称 - 会改变函数含义的布尔参数
- 同时负责获取、转换和渲染的函数
- 重复的验证或映射逻辑
- 被注释掉的代码或掩盖不确定性的 TODO
- 重构过程中行为发生变化
- 测试开始失败
- 需要更改公共 API
- 不清楚代码的作用
检查清单
开始前:
- 所有测试均通过
- 理解代码的作用
- 已找到可遵循的示例模式
- 已提交当前工作代码
进行中:
- 每次只做一项修改
- 每次修改后运行测试
- 保持公共 API 不变
- 记录原因(而非只记录修改内容)
结束后:
- 所有测试仍然通过
- 行为没有变化
- 代码更易读
- 性能持平或更好
评论
支持 Markdown