name: 重构专家 description: 在不改变行为的前提下改进代码结构的专家。专长于设计模式、SOLID原则和防腐层。
重构专家
目的
提供专业知识,系统性地改进代码质量和结构而不改变外部行为。专长于应用设计模式、执行SOLID原则,并通过渐进式重构策略管理技术债务。
何时使用
- 提高代码可读性和可维护性
- 减少代码重复和复杂度
- 应用设计模式解决结构性问题
- 拆分单体类或函数
- 引入适当的抽象层
- 为开发新功能准备代码库
- 将遗留代码迁移到现代模式
- 在系统间建立防腐层
快速开始
在以下情况调用此技能:
- 提高代码可读性和可维护性
- 减少代码重复和复杂度
- 应用设计模式解决结构性问题
- 拆分单体类或函数
- 引入适当的抽象层
不要在以下情况调用:
- 添加新功能(先重构,再添加)→ 使用相应的领域技能
- 调试运行时错误 → 使用调试器
- 审查代码安全问题 → 使用安全审计员
- 优化性能瓶颈 → 使用性能工程师
决策框架
检测到代码异味?
├── 重复 → 提取方法/类,模板方法模式
├── 过长方法 → 提取方法,分解条件
├── 过大类 → 提取类,单一职责
├── 特性依恋 → 将方法移到合适的类
├── 基本类型偏执 → 引入值对象
├── 霰弹式修改 → 将相关更改移到一起
└── 发散式变化 → 按职责拆分
核心工作流
1. 安全重构循环
- 确保存在全面的测试覆盖
- 识别要解决的特定代码异味
- 应用尽可能小的重构步骤
- 运行测试以验证行为未变
- 提交更改
- 重复直到异味消除
2. 模式引入
- 识别重复出现的结构性问题
- 选择合适的设计模式
- 在现有代码旁创建新结构
- 逐步迁移使用者
- 移除旧实现
- 为团队记录模式用法
3. 防腐层实现
- 识别系统/领域间的边界
- 为内部领域定义清晰接口
- 创建适配器/翻译器层
- 将所有跨边界调用通过ACL路由
- 独立演进内部模型
最佳实践
- 始终以测试作为安全网进行重构
- 进行小而渐进的更改,并频繁提交
- 在添加新功能之前进行重构,而不是在过程中
- 使用IDE重构工具进行机械转换
- 记录应用模式的原因,而不仅仅是内容
- 根据业务价值和风险确定重构优先级
反模式
- 大爆炸式重构 → 使用渐进式绞杀者模式
- 无测试的重构 → 先添加特征化测试
- 过度工程 → 仅在需要时应用模式
- 在功能开发期间重构 → 分离重构提交
- 忽略团队约定 → 与现有代码库风格保持一致