--- description: > 安全重构技能。当用户要求重构代码、清理技术债、优化代码结构 或简化复杂逻辑时激活。行为不变前提下改善内部结构。 alwaysApply: false --- # Refactoring Workflow > 本文件是精简执行摘要。完整流程、模板和深度参考见: > Read `.cursor/skills/refactoring/SKILL.md` 依赖技能:`vue-testing`(Cursor 已通过 `skill-vue-testing` 规则自动加载) ## 黄金规则 > 重构 = 不改变外部行为的前提下改善内部结构。 > 每一步都要小到"显然正确",每一步之后测试必须全部通过。 > 如果测试不足,先补测试再重构。 ## 执行流程 ### 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. 继续下一步 ## 禁止事项 - 不要在重构中同时添加新功能 - 不要一次改太多(改完跑不了测试) - 不要在没有测试的情况下重构核心逻辑 - 不要重构正在被其他人修改的代码 ## 验证 - [ ] 所有测试通过 - [ ] ESLint 无报错 - [ ] 外部行为未改变 - [ ] 代码可读性提升