--- name: refactoring version: 1.1.0 description: "基于测试保障的安全重构工作流,行为不变前提下改善代码结构。当需要重构、清理代码或消除技术债时使用。" requires: [vue-testing] --- > ⚠️ 核心执行流程已在 `.cursor/rules/033-refactoring.mdc` 中由 Cursor 自动注入。 > 本文件提供完整模板、代码示例和边缘场景处理,供 Agent 按需深入 Read。 # Refactoring Workflow ## 触发条件 用户要求重构代码、清理技术债、优化代码结构或简化复杂逻辑。 ## 核心原则 **重构 = 不改变外部行为的前提下改善内部结构** - 每一步都要小到"显然正确" - 每一步之后测试必须全部通过 - 如果测试不足,先补测试再重构 ## 执行流程 ### 1. 评估现状 1. 读取目标代码,识别"代码坏味道" 2. 运行现有测试确认基线:`npm test -- --related` 3. 如果测试覆盖不足,**先补充测试** ### 2. 制定重构计划 常见重构模式: | 坏味道 | 重构手法 | 风险 | |--------|---------|------| | 函数过长(>50行) | Extract Function | 低 | | 重复代码 | Extract + Consolidate | 低 | | 过长参数列表 | Introduce Parameter Object | 低 | | Switch/If 过多 | Replace with Polymorphism | 中 | | 大类 | Extract Class | 中 | | Feature Envy | Move Method | 中 | | 深层嵌套 | Replace Nested with Guard Clauses | 低 | ### 3. 小步执行 对每一步: 1. 做一个**原子级**的重构变更 2. 运行测试 → 全部通过 3. Git commit(可选,但建议频繁提交) 4. 继续下一步 ### 4. 验证 1. 运行完整测试套件 2. ESLint 无报错 3. 功能行为未改变 ## 禁止事项 - ❌ 不要在重构中同时添加新功能 - ❌ 不要一次改太多(改完跑不了测试) - ❌ 不要在没有测试的情况下重构核心逻辑 - ❌ 不要重构正在被其他人修改的代码 ## 验证 1. [ ] 所有测试通过 2. [ ] ESLint 无报错 3. [ ] 外部行为未改变 4. [ ] 代码可读性提升(主观判断)