2.0 KiB
2.0 KiB
name, version, description, requires
| name | version | description | requires | |
|---|---|---|---|---|
| refactoring | 1.1.0 | 基于测试保障的安全重构工作流,行为不变前提下改善代码结构。当需要重构、清理代码或消除技术债时使用。 |
|
⚠️ 核心执行流程已在
.cursor/rules/033-refactoring.mdc中由 Cursor 自动注入。 本文件提供完整模板、代码示例和边缘场景处理,供 Agent 按需深入 Read。
Refactoring Workflow
触发条件
用户要求重构代码、清理技术债、优化代码结构或简化复杂逻辑。
核心原则
重构 = 不改变外部行为的前提下改善内部结构
- 每一步都要小到"显然正确"
- 每一步之后测试必须全部通过
- 如果测试不足,先补测试再重构
执行流程
1. 评估现状
- 读取目标代码,识别"代码坏味道"
- 运行现有测试确认基线:
npm test -- --related - 如果测试覆盖不足,先补充测试
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. 小步执行
对每一步:
- 做一个原子级的重构变更
- 运行测试 → 全部通过
- Git commit(可选,但建议频繁提交)
- 继续下一步
4. 验证
- 运行完整测试套件
- ESLint 无报错
- 功能行为未改变
禁止事项
- ❌ 不要在重构中同时添加新功能
- ❌ 不要一次改太多(改完跑不了测试)
- ❌ 不要在没有测试的情况下重构核心逻辑
- ❌ 不要重构正在被其他人修改的代码
验证
- 所有测试通过
- ESLint 无报错
- 外部行为未改变
- 代码可读性提升(主观判断)