CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
代码质量与工程实践/课时/重构基础
RawBlame
课时目录12 节

代码质量与工程实践

  1. 01代码质量是什么
  2. 02代码审查
  3. 03重构基础
  4. 04代码坏味道
  5. 05文档生成
  6. 06风格与规范
  7. 07Pull Request 流程
  8. 08质量与测试
  9. 09静态分析工具
  10. 10技术债务
  11. 11团队规范
  12. 12综合练习

重构基础

refactoring 节点;小步安全重构。

35 分钟

重构基础

重构(Refactoring)是在 不改变外部行为 的前提下,改善代码内部结构。路线图 refactoring 节点强调 小步、可验证:每改一步跑测试,而不是「大手术一次改完」。没有绿测的重构是赌博。

学习目标

  • 理解重构的定义与「小步提交」节奏
  • 会使用提取方法、重命名、搬移类等常见手法
  • 知道重构前需有 testing-essentials 提供的安全网

何时重构

适合时机:

  • 刚写完功能、测试绿,结构仍乱(童子军规则:离开时比来时干净)
  • 修 bug 时发现根因是结构问题
  • 加新需求时,旧设计明显挡路

不适合:无测试、无需求、纯「看着不顺眼」大改。先补关键路径测试,或在新分支隔离实验。

小步安全流程

1. 确保测试绿(或先写 characterization test)
2. 做一步机械重构(如 Extract Method)
3. 跑测试 → 绿则 commit
4. 重复;行为变更另开 PR

与 git-essentials 的 atomic commit 一致:一个 commit 只做一类重构,方便 git bisect。

常用手法(直觉)

手法场景
提取方法长方法、重复块
重命名误导性变量名
搬移方法类职责错位
以多态取代条件冗长 switch/if-else

Spring Service 里若业务逻辑与持久化缠在一起,可先提取纯函数再测,参考 spring-boot-essentials。用 AI 辅助重构时,务必人工 diff 每步,见 ai-coding-essentials(若有)或 ai-review 的「禁止一次改太多文件」原则。

与坏味道

重构常由 代码坏味道 触发——下一课 cq-smells 会列长方法、重复、过大类。记住:先识别 smell,再选手法,测试全程在线。

练习

  • 在 backend 找一个 <30 行的 private 方法,练习 Extract Method 并跑 mvn test
  • 用 git log --oneline -5 看最近提交粒度是否便于回滚
  • 读一篇 diff,区分「行为变更」与「纯重构」各几处

小结

重构 = 行为不变 + 结构更好 + 测试守护 + 小步 commit。 下一课识别代码坏味道,决定「该不该动刀」。

加载本节练习…
← 上一课代码审查下一课 →代码坏味道