重构实战100例
📚 共计 100 章节
01
重构初探
什么是重构?重构与重写的区别,收益与风险,一个简单案例(提炼函数)
入门
核心概念
02
坏味道识别(上)
神秘命名、重复代码、过长函数、过长参数列表、全局数据
坏味道
代码嗅探
03
坏味道识别(下)
可变数据、发散式变化、霰弹式修改、依恋情结、数据泥团
坏味道
进阶
04
基本重构手法(一)
提炼函数、内联函数、提炼变量、内联变量
手法
基础
05
基本重构手法(二)
改变函数声明、封装变量、变量改名、引入参数对象
手法
命名
06
基本重构手法(三)
组合函数、拆分循环、以管道取代循环、移除标记参数
手法
循环
07
封装(一)
封装记录、封装集合、以对象取代基本类型
封装
数据
08
封装(二)
以查询取代临时变量、提炼类、将类内联化、隐藏委托关系
封装
委托
09
搬移特性(一)
搬移函数、搬移字段、搬移语句到函数内/调用者
搬移
特性
10
搬移特性(二)
以函数调用取代内联代码、移动语句、拆分阶段、以工厂函数取代构造函数
搬移
工厂
11
组织数据(一)
自封装字段、以对象取代数组、以子类取代类型码
数据
子类
12
组织数据(二)
以状态/策略模式取代类型码、以字段取代子类、以查询取代派生变量
数据
模式
13
简化条件逻辑(一)
分解/合并条件表达式、以卫语句取代嵌套条件表达式
条件
卫语句
14
简化条件逻辑(二)
以多态取代条件表达式、引入特例(Null Object)、引入断言
多态
特例
15
重构API(一)
将查询函数和修改函数分离、函数参数化、移除设值函数
API
查询
16
重构API(二)
以查询取代参数、以参数取代查询、移除标记参数、保持对象完整
API
参数
17
处理继承(一)
函数上移、字段上移、构造函数本体上移、函数下移
继承
上移
18
处理继承(二)
字段下移、以子类取代类型码、以委托取代超类/子类
继承
委托
19
大型重构(一)
梳理并分解继承体系、将过程化设计转化为对象设计
大型
体系
20
大型重构(二)
分离领域与表现层、提炼继承体系
大型
领域
21
电商订单系统重构(上)
识别坏味道与设计重构计划
实战
电商
22
电商订单系统重构(下)
逐步实施重构与验证
实战
电商
23
遗留代码系统重构(上)
理解代码、编写特性测试
遗留
测试
24
遗留代码系统重构(下)
安全拆除重构与持续集成
遗留
CI
25
游戏引擎模块重构
性能优化与可扩展性提升
游戏
性能
26
Web后端API重构
从单体到微服务的渐进式重构
微服务
API
27
数据处理管道重构
提升可读性与可维护性
数据
管道
28
重构与设计模式(一)
用策略模式重构复杂条件逻辑
策略
模式
29
重构与设计模式(二)
用观察者模式重构耦合的更新逻辑
观察者
解耦
30
重构与设计模式(三)
用工厂模式重构对象创建逻辑
工厂
创建
31
重构与设计模式(四)
用模板方法模式重构重复算法
模板方法
复用
32
重构与设计模式(五)
用访问者模式重构数据结构操作
访问者
结构
33
重构与单元测试(一)
为重构编写安全网 - 测试策略
测试
安全
34
重构与单元测试(二)
如何测试私有方法、遗留代码
测试
私有
35
重构与代码评审
如何在Code Review中推动重构文化
评审
文化
36
重构与性能
重构是否影响性能?平衡可读性与性能
性能
权衡
37
重构工具实战(一)
IDE自动重构功能(IntelliJ IDEA / VS Code)
工具
IDE
38
重构工具实战(二)
使用静态分析工具(SonarQube, PMD)发现坏味道
静态分析
Sonar
39
重构与团队协作
如何说服团队进行重构、分工与节奏
团队
协作
40
重构与持续集成
在CI/CD流水线中集成重构检查
CI
流水线
41
坏味道:过长函数
实战分解技巧
坏味道
函数
42
坏味道:过长参数列表
实战引入参数对象
坏味道
参数
43
坏味道:重复代码
实战提炼函数与模板方法
坏味道
重复
44
坏味道:霰弹式修改
实战搬移函数与提炼类
坏味道
霰弹
45
坏味道:依恋情结
实战搬移函数与策略模式
坏味道
依恋
46
坏味道:数据泥团
实战提炼类与引入参数对象
坏味道
泥团
47
坏味道:基本类型偏执
实战以对象取代基本类型
坏味道
类型
48
坏味道:switch语句
实战以多态取代条件表达式
坏味道
switch
49
坏味道:平行继承体系
实战消除重复与搬移函数
坏味道
继承
50
坏味道:夸夸其谈未来性
实战移除不必要的抽象
坏味道
抽象
51
坏味道:临时字段
实战提炼类与引入Null对象
坏味道
临时
52
坏味道:过长的消息链
实战隐藏委托关系
坏味道
消息链
53
坏味道:中间人
实战移除中间人
坏味道
中间人
54
坏味道:内幕交易
实战搬移函数与减少耦合
坏味道
耦合
55
坏味道:过大的类
实战提炼类与提炼子类
坏味道
大类
56
坏味道:异曲同工的类
实战合并类与提炼超类
坏味道
合并