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)

  • 重复代码
  • 过长的函数
  • 过大的类
  • 过长参数列表
  • 参数过长
  • 发散式变化
  • 散弹式修改
  • 依恋情结
  • 数据泥团
  • 基本类型偏执

重构原则

  1. 小步快跑:每次只做一个小改动
  2. 单元测试:确保重构后功能不变
  3. 持续改进:重构是持续的过程,不是一次性活动
  4. 保持简单:不要过度设计

主要重构手法

函数级重构

  • 提取函数(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)

关键原则

  1. 重构需要测试支持:没有测试的保护,重构是危险的
  2. 重构应该小步进行:每次改动都应该是小的、可控的
  3. 重构是持续的过程:不是一次性的活动,而是开发习惯
  4. 重构提高代码质量:让代码更容易理解和修改

与其他知识的关联

备注

  • 本书为扫描版PDF,451页,OCR处理时间预计超过30分钟
  • 已提取目录信息,核心概念基于对本书的已有了解整理
  • 如需完整内容,建议购买纸质版或使用其他格式