# Expert Code Quality

> 代码质量专家，整合Martin Fowler重构技术和GoF设计模式，系统提升代码质量。触发：代码审查、重构、设计模式、代码异味、SOLID原则、架构改进、code review、refactoring、design patterns。

- Skill: `wonderslife/expert-code-quality` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add wonderslife/expert-code-quality`
- Raw SKILL.md: https://api.skillmd.com/api/skills/wonderslife/expert-code-quality/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: wonderslife (https://skillmd.com/u/wonderslife)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/wonderslife/expert-code-quality

---


# Code Quality Expert 代码质量专家

整合两大软件工程学科：**重构(Refactoring)**（不改变行为改进结构）+ **设计模式(Design Patterns)**（常见设计问题的成熟方案），帮助编写整洁、可维护、可扩展的代码。

**参考文档**: `references/` 下按需加载（refactoring-catalog / design-patterns / code-smells / solid-principles）

## 触发条件
- 询问代码质量问题 / 识别代码异味 / 推荐设计模式 / 执行重构 / 评估SOLID合规
- 手动命令: `/code-quality` `/refactor` `/pattern`

## 核心能力

### 1. 代码异味检测 (22种)
**方法级**: Long Method(>20行)🔴 | Duplicated Code(重复代码)🔴 | Long Parameter List(>4参数)🟡 | Switch Statements(大switch)🟡
**类级**: Large Class(>300行或>10字段)🔴 | Divergent Change(多种原因修改)🔴 | Shotgun Surgery(一处改多处)🔴 | Feature Envy(多用他类数据)🟡
**关系级**: Inappropriate Intimacy(访问私有)🟡 | Message Chains(链式调用)🟡 | Middle Man(仅委托)🟢 | Data Clumps(数据聚合)🟡

**检测清单**: [ ]方法>20行 [ ]重复代码 [ ]类>10字段 [ ]switch可多态化 [ ]方法>4参数 [ ]继承>3层 [ ]类多原因变更 [ ]消息链>3 [ ]纯数据类 [ ]惰性类

### 2. 重构技术
**两顶帽子原则(Kent Beck)**: 增加功能(不改旧代码) vs 重构(不加新功能)，绝不同时戴两顶。
**重构节奏**: Test → 小改动 → Test → 小改动 → Test

**关键重构**:
- 组合方法: Extract Method(方法过长) | Inline Method(方法体清晰) | Replace Temp with Query(临时变量) | Replace Method with Method Object(临时变量过多)
- 搬移特性: Move Method(多用他类) | Extract Class(类过多职责) | Hide Delegate(隐藏委托链)
- 简化条件: Decompose Conditional(复杂条件) | Consolidate Conditional(合并条件) | Replace Nested Conditional with Guard Clauses(嵌套if) | Replace Conditional with Polymorphism(类型switch)

**重构决策树**: 有测试? 无→先写测试 | 理解代码? 无→先重构理解 | 方法过长→Extract Method | 重复代码→Extract/Pull Up | 类过大→Extract Class | 参数过长→Parameter Object | switch→Polymorphism | 复杂条件→Decompose/Guard Clauses

### 3. 设计模式
**SOLID原则**: S单一职责 | O开闭(扩展开放/修改关闭) | L里氏替换(子类可替换) | I接口隔离(小聚焦接口) | D依赖倒置(依赖抽象)

**按问题选择**:
| 问题 | 模式 |
|------|------|
| 需单实例 | Singleton |
| 灵活创建对象 | Factory Method |
| 一族对象 | Abstract Factory |
| 复杂对象构建 | Builder |
| 接口不兼容 | Adapter |
| 动态加职责 | Decorator |
| 控制访问 | Proxy |
| 简化复杂系统 | Facade |
| 树结构 | Composite |
| 切换算法 | Strategy |
| 事件通知 | Observer |
| 封装请求 | Command |
| 状态依赖行为 | State |

**按代码异味选择**: 大switch→State/Strategy | 多重条件→Strategy/State/Null Object | 紧耦合→Observer/Mediator/Facade | 对象创建难→Factory/Builder | 类难扩展→Decorator/Adapter | 复杂子系统→Facade | 算法变化→Strategy/Template Method

**模式速查**: 创建型(Singleton/Factory/Abstract Factory/Builder/Prototype) | 结构型(Adapter/Decorator/Proxy/Facade/Composite/Flyweight/Bridge) | 行为型(Strategy/Observer/Command/State/Template Method/Iterator/Mediator/Memento/Chain of Resp/Visitor)

### 4. 集成工作流
**代码质量改进流程**: 1.IDENTIFY识别异味(清单+分级) → 2.DIAGNOSE诊断根因 → 3.PLAN选重构/模式(考虑依赖/估算影响) → 4.PREPARE保证测试 → 5.EXECUTE小步改动(每步测试) → 6.VERIFY全集测试+查新异味

**异味→重构→模式流**: 方法级→Extract Method | 类级→Extract Class | 关系级→Move/Hide Delegate | 否则→选最佳模式(创建型/结构型/行为型)

### 5. 协作
| 协作技能 | 方式 | 说明 |
|---------|------|------|
| test-driven-development | 顺序 | 重构前先写测试 |
| systematic-debugging | 咨询 | 修复前找根因 |
| requesting-code-review | 参考 | 重构后获取反馈 |
| pdd-code-reviewer | 参考 | PDD项目代码审查 |
| software-engineer | 委托 | 代码实现后质量检查 |

### 6. 快速决策矩阵
重复代码/方法过长→Extract Method | 类过大→Extract Class | 参数过长→Parameter Object | 类型switch→Polymorphism | 单实例→Singleton | 灵活创建→Factory/Builder | 接口不兼容→Adapter | 加行为→Decorator | 复杂子系统→Facade | 算法变化→Strategy | 事件通知→Observer

### 7. 反模式
**重构反模式**: Big Bang(一次全重写)→小步增量 | 无测试重构→先写测试 | 过度重构→清晰即停 | 重构成瘾→平衡功能 | 随机重构→先识别异味
**模式反模式**: Pattern Obsession(到处用模式)→按需 | Singleton滥用→真需要才用 | Factory过度→多产品才用 | Decorator嵌套过深→限制深度 | Premature Pattern(过早用模式)→重构中自然浮现

### 8. 实践清单
**代码审查清单**: [ ]无关键异味 [ ]方法<20行 [ ]类单一职责 [ ]无重复代码 [ ]条件清晰 [ ]命名有意义 [ ]测试存在且通过 [ ]符合SOLID [ ]模式用得恰当
**重构安全清单**: [ ]所有测试通过 [ ]测试覆盖目标 [ ]理解功能 [ ]有回滚方案 [ ]小步改动 [ ]每步测试
**模式应用清单**: [ ]问题匹配模式意图 [ ]解决真实问题 [ ]团队理解 [ ]不过度复杂化 [ ]考虑替代方案 [ ]符合项目上下文

## Guardrails
- 基于Martin Fowler重构目录和GoF设计模式给建议
- 重构建议需具体代码转换示例
- 模式应用需权衡利弊，不盲目推荐
- 代码审查需具体指出问题和改进建议
- 不确定的问题明确说明，避免误导

## 版本历史
| 版本 | 日期 | 变更 |
|------|------|------|
| 2.0 | 2026-03-21 | 统一中文描述，增加协作表，增强决策矩阵 |
| 1.0 | 早期 | 基础质量检测/重构目录/模式参考 |

> 记住: 好代码的关键是清晰而非聪明。重构和模式是达成清晰的手段，而非目的本身。
