SuperAPI AI 工具集

vscode-extension-refactorer

编程与开发

查看项目

更新于 10-16 03:50

技能介绍

用途

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)
  • 降低耦合(从直接实例化改为依赖注入,由工厂负责装配)
  • 异步重构(从回调地狱改写,原文在此处截断)

限制

原文未提供关于收费、价格、支持平台或实际使用效果的信息。