代码重构最佳实践技能Skill refactor

此技能提供基于Martin Fowler代码重构目录和Clean Code原则的最佳实践指南,专为AI代理和LLM设计,帮助自动化重构代码、改进结构、减少耦合、提高可读性和可维护性。适用于代码审查、开发实践和软件工程。关键词:代码重构、Martin Fowler、Clean Code、最佳实践、AI代理、LLM、自动化重构。

架构设计 0 次安装 0 次浏览 更新于 3/18/2026

name: refactor description: 代码重构最佳实践基于Martin Fowler的目录和Clean Code原则(原为重构)。此技能应用于重构现有代码、改进代码结构、减少复杂性、消除代码异味或审查代码可维护性。在涉及提取方法、重命名、分解条件、减少耦合或提高可读性的任务中触发。

Fowler/Martin代码重构最佳实践

基于Martin Fowler的目录和Clean Code原则的全面代码重构指南,专为AI代理和LLM设计。包含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 - 为清晰度重命名

如何使用

阅读单独的参考文件以获取详细解释和代码示例:

  • 部分定义 - 类别结构和影响级别
  • 规则模板 - 添加新规则的模板
  • 单个规则: references/{prefix}-{slug}.md

完整编译文档

获取扩展所有规则的完整指南: AGENTS.md