mcpField
R
refactor-code

refactor-code

github.com/shipshitdev开发38108 次安装2 天前更新
代码仓库

关于 refactor-code

refactor-code 是用于改进代码可读性、结构和可维护性的重构技能,面向在保持现有行为的前提下整理代码的开发者。它强调先理解测试与本地模式,再进行小步修改并验证。

主要功能

  1. 01保留现有行为和公共接口
  2. 02参考代码库中的相似实现
  3. 03拆分函数并理顺控制流
  4. 04减少重复并清理无用代码
  5. 05收窄类型并提取常量
  6. 06每次修改后运行测试

适用场景

  1. 01整理过长或难以理解的函数
  2. 02处理重复代码和复杂条件
  3. 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. 为清晰度而重构

小步、渐进式修改——每次只改一处。按以下优先级处理:

  1. 改进命名
  2. 缩小函数范围、明确职责(将较长的方法提取为辅助函数)
  3. 理清控制流
  4. 消除重复
  5. 移除死代码和误导性注释
  6. 收窄类型和接口(用合适的类型替换 any)
  7. 提取常量(替换魔法数字/字符串)
  8. 提取服务/组件(将业务逻辑移出控制器,拆分大型组件)
4. 避免过度设计
  • 不要仅仅因为某种模式流行就引入它
  • 优先采用直白的代码,避免巧妙的间接处理
  • 只有在确实能减少重复或消除困惑时才提取抽象
5. 每次修改后运行测试
bun run test <specific-test-file>

启发式原则

  • 一个函数只做一件事
  • 名称应说明意图,而不是实现细节
  • 注释应解释原因,而不是复述代码已有的内容
  • 条件语句应从上到下清晰易读,无需在脑中来回推演
  • 共享逻辑应集中在一处,但不能以产生难以理解的抽象为代价

危险信号(停下来重新评估)

  • 使用 data、item、temp、helper、util 等泛化名称
  • 会改变函数含义的布尔参数
  • 同时负责获取、转换和渲染的函数
  • 重复的验证或映射逻辑
  • 被注释掉的代码或掩盖不确定性的 TODO
  • 重构过程中行为发生变化
  • 测试开始失败
  • 需要更改公共 API
  • 不清楚代码的作用

检查清单

开始前:

  • 所有测试均通过
  • 理解代码的作用
  • 已找到可遵循的示例模式
  • 已提交当前工作代码

进行中:

  • 每次只做一项修改
  • 每次修改后运行测试
  • 保持公共 API 不变
  • 记录原因(而非只记录修改内容)

结束后:

  • 所有测试仍然通过
  • 行为没有变化
  • 代码更易读
  • 性能持平或更好

评论

支持 Markdown