agentleFS
wonderslifewonderslife/pdd-skills-v3/skills/entropy/expert-code-quality/SKILL.md

expert-code-quality

Skill15 starsChanged 26 days agoMITView on GitHub

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

1 other project uses a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

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.02026-03-21统一中文描述,增加协作表,增强决策矩阵
1.0早期基础质量检测/重构目录/模式参考

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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.