| name | refactoring-guide |
| description | 重构指南 - 66种重构技术的中文参考手册。当用户需要重构代码、优化代码结构、消除代码异味(code smells)、改善代码可读性时使用。触发词:重构、refactor、代码优化、代码异味、code smell、提取函数、内联、搬移函数、简化条件、整理继承。基于 Refactoring.Guru 的权威内容。 |
重构指南
基于 Refactoring.Guru 的 66 种重构技术中文参考手册。
使用方式
当用户提出重构需求时:
- 识别问题 - 通过决策树定位代码问题
- 选择技术 - 根据决策树选择对应的重构手法
- 执行重构 - 按步骤实施,每步后测试
总体决策路由
flowchart TD
Start[代码需要重构] --> Q1{问题出在哪里?}
Q1 -->|函数| CAT1[组合函数]
Q1 -->|类之间| CAT2[搬移特性]
Q1 -->|数据| CAT3[组织数据]
Q1 -->|条件逻辑| CAT4[简化条件]
Q1 -->|函数调用| CAT5[简化调用]
Q1 -->|继承| CAT6[处理泛化]
CAT1 --> R1[→ 组合函数决策树]
CAT2 --> R2[→ 搬移特性决策树]
CAT3 --> R3[→ 组织数据决策树]
CAT4 --> R4[→ 简化条件决策树]
CAT5 --> R5[→ 简化调用决策树]
CAT6 --> R6[→ 处理泛化决策树]
style Start fill:#e1f5fe
style CAT1 fill:#fff3e0
style CAT2 fill:#fff3e0
style CAT3 fill:#fff3e0
style CAT4 fill:#fff3e0
style CAT5 fill:#fff3e0
style CAT6 fill:#fff3e0
1. 组合函数决策树
flowchart TD
Start[函数问题] --> Q1{函数太长?}
Q1 -->|是| Q2{有可独立的代码片段?}
Q2 -->|是| A1[提取函数<br/>Extract Method]
Q2 -->|否| Q3{局部变量太多?}
Q3 -->|是| A2[以函数对象取代函数<br/>Replace Method with Method Object]
Q3 -->|否| Q4{临时变量被多次赋值?}
Q4 -->|是| A3[分解临时变量<br/>Split Temporary Variable]
Q1 -->|否| Q5{函数体比名字更清晰?}
Q5 -->|是| A4[内联函数<br/>Inline Method]
Q5 -->|否| Q6{表达式难以理解?}
Q6 -->|是| Q7{是临时变量?}
Q7 -->|是| A5[提取变量<br/>Extract Variable]
Q7 -->|否| A6[以查询取代临时变量<br/>Replace Temp with Query]
Q6 -->|否| Q8{函数修改了参数?}
Q8 -->|是| A7[移除对参数的赋值<br/>Remove Assignments to Parameters]
Q8 -->|否| Q9{有更清晰的算法?}
Q9 -->|是| A8[替换算法<br/>Substitute Algorithm]
Q9 -->|否| A9[内联临时变量<br/>Inline Temp]
style A1 fill:#c8e6c9
style A2 fill:#c8e6c9
style A3 fill:#c8e6c9
style A4 fill:#c8e6c9
style A5 fill:#c8e6c9
style A6 fill:#c8e6c9
style A7 fill:#c8e6c9
style A8 fill:#c8e6c9
style A9 fill:#c8e6c9