Skip to content
重构计划模板

重构计划模板

使用这个模板来记录和跟踪你的重构工作。


项目信息

字段
项目 / 模块 [项目名称]
目标文件 [要重构的文件列表]
创建日期 [日期]
作者 [姓名]
状态 Draft / In Review / Approved / In Progress / Completed

执行摘要

目标

  • [主要目标:例如,提升支付流程可读性]
  • [次要目标:例如,减少重复代码]
  • [第三目标:例如,提升可测试性]

约束

  • [约束 1:例如,不能改公共 API]
  • [约束 2:例如,必须保持向后兼容]
  • [约束 3:例如,不能改数据库 schema]

风险等级

  • Low - 小改动,测试充分
  • Medium - 中等改动,有一定风险
  • High - 大改动,需要特别注意

重构前检查清单

测试覆盖评估

指标 当前值 目标值 状态
单元测试覆盖率 __% >=80%
集成测试 Yes/No Yes
所有测试通过 Yes/No Yes

开始前必须满足

  • 所有测试通过
  • 已读懂并审查代码
  • 已有备份 / 版本控制
  • 已获得用户批准

已识别的代码异味

摘要

# 异味 位置 严重性 优先级
1 [例如,Long Method] [file:line] High P1
2 [例如,Duplicate Code] [file:line] Medium P2
3 [例如,Feature Envy] [file:line] Low P3

详细分析

异味 #1:[名称]

位置path/to/file.js:45-120

描述:[对问题的详细描述]

影响

  • [影响 1]
  • [影响 2]

建议方案:[如何修复的简要说明]


重构阶段

阶段 A:快速收益(低风险)

目标:快速、低风险的改进,立刻产生价值

预计改动:[X 个文件,Y 个方法]

需要用户批准:Yes / No

# 任务 文件 重构手法 状态
A1 将变量 x 重命名为 userCount utils.js:15 Rename Variable [ ]
A2 删除未使用的 oldHandler() api.js:89 Remove Dead Code [ ]
A3 提取重复的验证逻辑 form.js:23,67 Extract Method [ ]

回滚方案:回退 A1-A3 的提交


阶段 B:结构优化(中风险)

目标:改善代码组织和清晰度

预计改动:[X 个文件,Y 个方法]

需要用户批准:Yes

依赖:必须先完成阶段 A

# 任务 文件 重构手法 状态
B1 从长函数中提取 calculatePrice() order.js:45 Extract Method [ ]
B2 引入 OrderDetails 参数对象 order.js:12 Introduce Parameter Object [ ]
B3 formatAddress() 移动到 Address 类 customer.js:78 Move Method [ ]

回滚方案:回滚到阶段 A 完成后的提交


阶段 C:架构改动(高风险)

目标:处理更深层的结构问题

预计改动:[X 个文件,Y 个方法]

需要用户批准:Yes

依赖:必须先完成阶段 A 和 B

# 任务 文件 重构手法 状态
C1 用多态替换价格 switch pricing.js:30 Replace Conditional with Polymorphism [ ]
C2 提取 NotificationService user.js:100 Extract Class [ ]

回滚方案:回滚到阶段 B 完成后的提交


详细重构步骤

任务 [ID]:[任务名称]

对应异味:[异味名称]

重构手法:[手法名称]

风险等级:Low / Medium / High

上下文

重构前(当前状态):

// 把当前代码贴在这里

重构后(期望状态):

// 把期望代码贴在这里

逐步操作

  1. 步骤 1:[描述]

    • 测试:完成此步后运行测试
    • 预期:所有测试通过
  2. 步骤 2:[描述]

    • 测试:完成此步后运行测试
    • 预期:所有测试通过
  3. 步骤 3:[描述]

    • 测试:完成此步后运行测试
    • 预期:所有测试通过

验证

  • 所有测试通过
  • 行为未改变
  • 代码可编译
  • 没有新的警告

提交信息

refactor: [描述这次重构]

进度跟踪

阶段状态

阶段 状态 开始时间 完成时间 测试是否通过
A Not Started / In Progress / Done
B Not Started / In Progress / Done
C Not Started / In Progress / Done

遇到的问题

# 问题 解决方案 状态
1 [描述] [如何解决] Open / Resolved

指标对比

重构前

指标 文件 1 文件 2 总计
代码行数
圈复杂度
可维护性指标
方法数量
平均方法长度

重构后

指标 文件 1 文件 2 总计 变化
代码行数
圈复杂度
可维护性指标
方法数量
平均方法长度

重构后检查清单

  • 所有测试通过
  • 没有新的警告或错误
  • 代码成功编译
  • 已完成手工验证
  • 文档已更新(如需要)
  • 已完成代码审查
  • 指标有改善
  • 已获得用户签字确认

经验总结

做得好的地方

  • [Item 1]
  • [Item 2]

可以改进的地方

  • [Item 1]
  • [Item 2]

未来建议

  • [Item 1]
  • [Item 2]

批准

角色 姓名 日期 签名
Plan Author
Technical Lead
Product Owner

附录

A. 相关文档

  • [相关文档链接]

B. 参考资料

  • [代码异味目录]
  • [重构目录]

C. 使用的工具

  • [测试框架]
  • [Lint 工具]
  • [复杂度分析工具]