Files
2026-03-05 21:27:11 +08:00

74 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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. [ ] 代码可读性提升(主观判断)