title: “重构:改善既有代码的设计” original_path: “/books/重构-改善既有代码的设计 中文版.pdf” file_size: “31.26 MB” total_pages: 451 author: “Martin Fowler” processed_date: “2026-09-02” method: “扫描版PDF-目录提取” status: “done_toc_only”
重构:改善既有代码的设计
书籍信息
- 作者: Martin Fowler
- 页数: 451页(扫描版)
- 文件大小: 31.26 MB
- 处理状态: 扫描版PDF,全文OCR时间过长(预计>30分钟),仅提取目录生成笔记
核心主题
本书是重构领域的经典著作,系统阐述了如何在不改变外部行为的前提下改进代码结构,提高代码的可读性和可维护性。
目录结构
| 章节 | 标题 | 页码 |
|---|---|---|
| 1 | 重构,第一个案例 | 25 |
| 2 | 重构原则 | 77 |
| 3 | 代码的坏味道 | 99 |
| 4 | 构筑测试体系 | 113 |
| 5 | 重构列表 | 127 |
| 6 | 重新组织函数 | 133 |
| 7 | 在对象之间搬移特性 | 165 |
| 8 | 重新组织数据 | 193 |
| 9 | 简化条件表达式 | 261 |
| 10 | 简化函数调用 | 295 |
| 11 | 处理概括关系 | 343 |
| 12 | 大型重构 | 383 |
| 13 | 重构,复用与现实 | 403 |
| 14 | 重构工具 | 425 |
| 15 | 总结 | 433 |
核心概念
什么是重构?
- 对软件内部结构进行调整,以提高其可理解性并降低修改成本
- 不改变软件的外部行为
- 通过一系列微小的、安全的步骤实现
代码的坏味道(Code Smells)
- 重复代码
- 过长的函数
- 过大的类
- 过长参数列表
- 参数过长
- 发散式变化
- 散弹式修改
- 依恋情结
- 数据泥团
- 基本类型偏执
重构原则
- 小步快跑:每次只做一个小改动
- 单元测试:确保重构后功能不变
- 持续改进:重构是持续的过程,不是一次性活动
- 保持简单:不要过度设计
主要重构手法
函数级重构
- 提取函数(Extract Function)
- 内联函数(Inline Function)
- 变量分离(Split Variable)
- 参数改名(Rename Parameter)
- 函数组合(Compose Method)
数据级重构
- 字段改名(Rename Field)
- 对象搬移(Move Field)
- 类改名(Rename Class)
- 引入参数对象(Introduce Parameter Object)
继承相关重构
- 提炼超类(Extract Superclass)
- 折叠继承树(Collapse Hierarchy)
- 以子类替换类型码(Replace Type Code with Subclass)
关键原则
- 重构需要测试支持:没有测试的保护,重构是危险的
- 重构应该小步进行:每次改动都应该是小的、可控的
- 重构是持续的过程:不是一次性的活动,而是开发习惯
- 重构提高代码质量:让代码更容易理解和修改
与其他知识的关联
- 与Clean Code: 代码整洁之道 - 命名和代码风格
- 与敏捷软件开发: 重构是敏捷开发的核心实践
- 与设计模式: 重构常使用设计模式解决问题
备注
- 本书为扫描版PDF,451页,OCR处理时间预计超过30分钟
- 已提取目录信息,核心概念基于对本书的已有了解整理
- 如需完整内容,建议购买纸质版或使用其他格式