关于 refactor
面向 AI Agent 和大模型的代码重构指南,依据 Fowler 的重构目录与 Clean Code 原则整理为 43 条分级规则,涵盖结构、依赖、命名和逻辑改进。
主要功能
- 01涵盖 8 类的 43 条规则
- 02按优先级排列重构建议
- 03结构与分解实践
- 04依赖与耦合指导
- 05提供规则详解与示例
适用场景
- 01拆分过长的方法或大型类
- 02降低组件间耦合
- 03简化嵌套条件逻辑
- 04检查代码异味与反模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill refactor安装后在 Claude Code 中输入/refactor确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mdcond-consolidate.mdcond-decompose.mdcond-guard-clauses.mdcond-lookup-table.mdcond-polymorphism.mdcond-special-case.mdcouple-dependency-injection.mdcouple-feature-envy.mdcouple-hide-delegate.mdcouple-interface-segregation.mdcouple-preserve-whole-object.mdcouple-remove-middle-man.mddata-encapsulate-collection.mddata-encapsulate-record.mddata-replace-primitive.mddata-replace-temp-with-query.mddata-split-variable.mderror-custom-exceptions.mderror-exceptions-over-codes.mderror-fail-fast.mderror-separate-concerns.mdmicro-inline-variable.mdmicro-remove-dead-code.mdmicro-rename-for-clarity.mdmicro-simplify-expressions.md详细介绍
Fowler/Martin 代码重构最佳实践
基于 Martin Fowler 的重构目录和 Clean Code 原则编写的全面代码重构指南,面向 AI Agent 和大模型。包含 8 个类别中的 43 条规则,并按影响程度排序,为自动化重构和代码生成提供指导。
适用场景
在以下情况下,请参考这些指南:
- 重构现有代码以提升可维护性
- 拆分过长的方法或过大的类
- 降低组件间的耦合
- 简化复杂的条件逻辑
- 检查代码异味和反模式
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 结构与分解 | 严重 | struct- |
| 2 | 耦合与依赖 | 严重 | couple- |
| 3 | 命名与清晰度 | 高 | name- |
| 4 | 条件逻辑 | 高 | cond- |
| 5 | 抽象与模式 | 中高 | pattern- |
| 6 | 数据组织 | 中 | data- |
| 7 | 错误处理 | 中 | error- |
| 8 | 微重构 | 低 | micro- |
快速参考
1. 结构与分解(严重)
struct-extract-method- 为过长的函数提取方法struct-single-responsibility- 应用单一职责原则struct-extract-class- 从大类中提取类struct-compose-method- 组合方法,形成清晰易读的流程struct-function-length- 将函数控制在 20 行以内struct-replace-method-with-object- 使用方法对象替换方法struct-parameter-object- 引入参数对象
2. 耦合与依赖(严重)
couple-dependency-injection- 使用依赖注入couple-hide-delegate- 隐藏委托以降低耦合couple-remove-middle-man- 过度使用中间人时将其移除couple-feature-envy- 移动方法以修复依恋情结couple-interface-segregation- 应用接口隔离原则couple-preserve-whole-object- 保留整个对象,而非仅保留字段
3. 命名与清晰度(高)
name-intention-revealing- 使用清晰表达意图的名称name-avoid-abbreviations- 避免使用缩写和首字母缩略词name-consistent-vocabulary- 使用一致的词汇name-searchable-names- 使用便于搜索的名称name-avoid-encodings- 避免在名称中编码类型信息
4. 条件逻辑(高)
cond-guard-clauses- 用保护子句替换嵌套条件cond-polymorphism- 用多态替换条件判断cond-decompose- 分解复杂条件cond-consolidate- 合并重复的条件片段cond-special-case- 引入特例对象cond-lookup-table- 用查找表替换条件判断
5. 抽象与模式(中高)
pattern-strategy- 为不同算法提取策略pattern-template-method- 使用模板方法共享流程骨架pattern-factory- 使用工厂处理复杂的对象创建pattern-open-closed- 应用开闭原则pattern-composition-over-inheritance- 优先使用组合,而非继承pattern-extract-superclass- 为共有行为提取超类
6. 数据组织(中)
data-encapsulate-collection- 封装集合data-replace-primitive- 用对象替换基本类型data-encapsulate-record- 将记录封装到类中data-split-variable- 拆分被多次赋值的变量data-replace-temp-with-query- 用查询替换临时变量
7. 错误处理(中)
error-exceptions-over-codes- 使用异常,而非错误代码error-custom-exceptions- 创建特定于领域的异常类型error-fail-fast- 通过前置条件尽早失败error-separate-concerns- 将错误处理与业务逻辑分离
8. 微重构(低)
micro-remove-dead-code- 移除无用代码micro-inline-variable- 内联简单变量micro-simplify-expressions- 简化布尔表达式micro-rename-for-clarity- 重命名以提高可读性
使用方法
阅读各个参考文件,了解详细说明和代码示例:
完整汇编文档
如需查看包含所有规则详细内容的完整指南,请参阅:AGENTS.md
评论
支持 Markdown