用途
VS Code Extension Refactorer 是一个面向 VS Code 扩展代码重构的技能,提供专家级、系统化且安全的代码重构指导。其目标是在保持功能不变的前提下,识别改进机会、应用经过验证的重构技术并确保代码质量。
适用时机
- 从大型文件中提取类、方法或模块
- 减少代码库中的代码重复
- 改进 TypeScript 类型安全与接口
- 重组模块结构与依赖关系
- 应用设计模式(Manager、Coordinator、Factory 等)
- 优化性能关键的代码路径
- 为开发新功能准备代码
- 快速原型开发后的清理工作
重构工作流
阶段一:分析与规划
提供代码坏味道检测表,列出坏味道、指标与对应重构方式,包括:长方法(>50 行、多重职责)→ 提取方法;大类(>500 行、>10 个公共方法)→ 提取类;重复代码(2 处以上相似块)→ 提取函数/类;依恋情结 → 移动方法;数据泥团 → 引入参数对象;基本类型偏执 → 替换为值对象;过长参数列表(>4 个参数)→ 引入参数对象;发散式变化 → 提取类(SRP);霰弹式修改 → 移动方法、内联类;上帝类 → 提取类、委托。
同时提供影响评估接口(RefactoringAssessment),用于在重构前评估范围(受影响文件、公共 API 变更、破坏性变更)、风险(测试覆盖率、复杂度)与依赖(内部依赖方、外部依赖方)。
阶段二:安全重构技术
- 提取方法(Extract Method):将长函数拆分为验证、处理、清理等独立私有方法。
- 提取类(Extract Class):将上帝类按职责拆分为核心管理、UI、持久化、配置等多个单一职责类。
- 以多态替换条件(Replace Conditional with Polymorphism):将 switch 分支改为 MessageHandler 接口及各自实现类,并用 MessageRouter 路由。
- 引入参数对象(Introduce Parameter Object):将长参数列表改为选项对象并合并默认值。
阶段三:VS Code 特有模式
- Manager-Coordinator 模式:协调器编排多个 manager,统一初始化与逆序释放。
- Service Locator 模式:通过 ServiceContainer 注册实例与工厂,按需获取服务。
- Disposable Chain 模式:用 DisposableChain 管理资源,按 LIFO 顺序释放并处理异常。
阶段四:类型安全改进
- 用具体类型替换 any
- 使用判别联合(Discriminated Unions)并在 switch 中做穷尽性检查
- 使用泛型约束(如 T extends Identifiable)保证类型安全
阶段五:验证
提供重构检查清单:测试全部通过、无新增 TypeScript 错误、公共 API 保持(或记录变更)、性能未退化、内存稳定、无循环依赖、文档按需更新。并给出重构前后使用相同测试与快照的测试策略。
常见重构场景
- 拆分大型文件(如 2000 行文件按职责拆为 index、Manager、Factory、State、types、utils)
- 降低耦合(从直接实例化改为依赖注入,由工厂负责装配)
- 异步重构(从回调地狱改写,原文在此处截断)
限制
原文未提供关于收费、价格、支持平台或实际使用效果的信息。