A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Show
Permalink
Name already in useA tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Developer-Books/Code_Style_Guide/重构:改善既有代码的设计.pdfGo to file
Cannot retrieve contributors at this time
Sorry, something went wrong. Reload? Sorry, we cannot display this file. Sorry, this file is invalid so it cannot be displayed. 《重构
改善既有代码的设计第二版》中文版 静态站点
执行下面命令: 构建后的结果放在 电子书执行下面命令, 你将得到
构建环境
贡献本文还有很多文案不准确或源码格式乱的问题, 如有发现欢迎可以提 pr 进行贡献 感谢本书源码来自 NxeedGoto/Refactoring2-zh, 由于为了构建电子书籍, 所以改造成了 gitbook 格式。 编写为臻完善的测试并经常运行,好过对完美测试的无尽等待 保持每个测试用例独立性,避免产生共享对象。因为测试之间会通过共享产生交互,而测试的结果就会受测试运行次序的影响,导致测试结果的不确定性 例子 describe('province', () => { let shanghai = null; beforeEach(() => { shanghai = new Province('shanghai'); }) it('shortfall', () => { expect(shanghai.shortfall).equal(5) }) }) 4.5 修改测试夹具
4.6 探测边界条件
4.7 测试远不止如此
5 介绍重构名录6 第一组重构6.1 提炼函数
6.2 内联函数
6.3 提炼变量
6.4 内联变量
6.5 改变函数声明
6.6 封装变量
6.7 变量改名
6.8 引入参数对象
6.9 函数组合成类
6.10 函数组合成变换
6.11 拆分阶段
7 封装7.1 封装记录
7.2 封装集合
7.3 以对象取代基本类型
7.4 以查询取代临时变量
7.5 提取类
7.6 内联类
7.7 隐藏委托关系
7.8 移除中间人
7.9 替换算法
8 搬移特性8.1 搬移函数
8.2 搬移字段
8.3 搬移语句到函数
8.4 搬移语句到调用者
8.5 以函数调用取代内联代码
8.6 移动语句
8.7 拆分循环
8.8 以管道取代循环
8.9 移除死代码
9 重新组织数据9.1 拆分代码
9.2 字段改名
9.3 以查询取代派生变量
9.4 将引用对象改为值对象
9.5 将值对象改为引用对象
10 简化条件逻辑10.1 分解条件表达式
10.2 合并条件表达式
10.3 卫语句取代嵌套条件表达式
10.4 以多态取代条件表达式
10.5 引入特例
10.6 引入断言
11 重构API11.1 查询函数和修改函数分离
11.2 函数参数化
11.3 移除标记参数
11.4 保持对象完整性
11.5 以查询取代参数
11.6 以参数取代查询
11.7 移除设置函数
11.8 以工厂函数取代构造函数
11.9 以命令取代函数
11.10 以函数取代命令
12 处理继承关系继承体系里上下调整:函数上移、字段上移、构造函数本体上移、函数下移、字段下移 12.1 函数上移
12.2 字段上移移构造函数本体上移 12.3 构造函数本体上移
12.4 函数下移
12.5 字段下移
12.6 以子类取代类型码
12.7 移除子类
12.8 提取超类
12.9 折叠继承体系
12.10 以委托取代子类
12.11 以委托取代超类
|