重构第二版的变更188app彩票ios

重构第一和第二版和第二版重构之间的变化的简短摘要188app彩票ios

2018年9月5日

在最广泛的级别,第二版的结构遵循第一版的结构。这不应该是令人惊讶的,因为第一版太成功了,我可能会继续努力。

第一个版本用四个叙述章节开幕,这些都出现了第二版。所有这些都遵循原本的广泛形式。

开幕式转移其域名,原本不是许多人都熟悉视频商店。重构的流程几乎相同:分解为功能,188app彩票ios单独计算从格式化,使用多态性通过类型组织计算。

原则和嗅觉章节都有彻底的大修。有太多幸存下来了,更改了。我猜测了四分之三的变化,但这是一个肠道的感觉而不是基于现实的测量。测试章节必须完全重做,特别是由于Java到JavaScript的变更。

在那些介绍性章节之后,我继续使用目录,我一直被视为书的心脏。我会在一瞬间进入目录更改,但一个值得注意的结构变化是我汇集了一章重构的初始章节,其中包含我判断的是一个很好的重构,以便首先了解一下。188app彩票ios

我放弃了后来的章节,探讨了更多的切向问题。我认为他们在第一版中工作,但这些天我认为最好在我的网站上发布这样的论文。这是一个原因,我还从目录中删除了四个“大重构”。188app彩票ios大重构总是与大多188app彩票ios数重构有点不同,我确实通过我的网站上的散文介绍这些例子更好地工作。

对目录的更改

那么目录发生了什么事?这是一个表格显示原始68重构的命运。188app彩票ios[1]

第一版中重构的命运188app彩票ios
名称 命运 更换
添加参数 275. 更换 ➜更改函数声明
将双向协会更改为单向 200 缺席的
将引用更改为值 183. 保存
将单向关联变为双向的 197 缺席的
将值更改为引用 179. 保存
折叠层次结构 344 保存
巩固条件表达式 240. 保存
合并重复的条件片段 243. 更换 ➜幻灯片陈述
分解条件 238. 保存
重复观测数据 189. 缺席的
封装系列 208 保存
封装悲伤 308. 缺席的
封装领域 206 更换 ➜封装变量
提取类 149. 保存
提取接口 341 缺席的
提取方法 110. 更换 ➜提取功能
提取子类 330 更换 ➜用子类替换类型代码
提取超类 336 保存
提取变量 124. 保存
表单模板的方法 345 缺席的
隐藏代表 157. 保存
隐藏方法 303. 缺席的
内联类 154. 保存
内联方法 117. 更换 ➜内联功能
内联温度 119. 更换 ➜内联变量
介绍断言 267. 保存
介绍国外方法 162. 缺席的
介绍本地扩展名 164. 缺席的
介绍空对象 260. 更换 ➜介绍特种案例
介绍参数对象 295. 保存
移动领域 146. 保存
移动方法 142. 更换 ➜移动功能
参数化方法 283. 更换 ➜参数化函数
保留整个对象 288. 保存
拉起构造器主体 325 保存
拉田 320 保存
拉起方法 322 保存
推下场 329 保存
推下方法 328 保存
删除参数分配 131. 更换 ➜拆分变量
删除控制标志 245. 更换† ➜用中断替换控制标志
删除中间的人 160. 保存
删除参数 277. 更换 ➜更改函数声明
删除设置方法 300 保存
重命名方法 273. 更换 ➜更改函数声明
用对象替换数组 186. 缺席的
用多态性替换条件型 255. 保存
用工厂方法替换构造函数 304. 更换 ➜用工厂函数替换构造函数
用对象替换数据值 175. 更换 ➜用对象替换原始
用继承替换委派 355. 缺席的
用例外替换错误代码 310. 保持†
用测试替换异常 315. 更换† ➜用precheck取代异常
用委派替换继承 352. 更换 ➜用委托替换超类
用符号常量替换魔号 204 更换† ➜替换魔法文字
用方法对象替换方法 135. 更换 ➜用命令替换函数
用防护条文替换嵌套条件 250. 保存
用显式方法替换参数 285. 更换 ➜删除标志参数
用方法替换参数 292. 更换 ➜用查询替换参数
用数据类替换记录 217 更换 ➜封装记录
用字段替换子类 232. 更换 ➜删除子类
用查询替换临时 120. 保存
用类替换类型代码 218 更换 ➜用对象替换原始
用州/策略替换类型代码 227 更换 ➜用子类替换类型代码
用子类替换类型代码 223 保存
自我封装领域 171. 更换 ➜封装变量
从修饰符单独查询 279. 保存
拆分临时变量 128. 更换 ➜拆分变量
替代算法 139. 保存

†网页版

188app彩票ios标记为保留的重构在第二版中以相同的名称出现。那些被标记为缺席的不在新版中。我在新版本中放弃重构的原因有很多,将来我可能会扩展本文来讨论其中一些。188app彩票ios那些标记为替换的在新版本中有一个不同名称的重构。188app彩票ios有些只是重命名,例如我将“分裂临时变量”改为“分裂变量”。大多数都是小的概括,例如将“提取方法”更改为“提取函数”。这些概括反映了重写的不那么以对象为中心的本质。在某些情况下,一些第一版的重构是组合在一起的:例如添加参数、删除参数188app彩票ios和重命名方法都被更改函数声明所取代。就像我省略的那些一样,我将来可能会扩展这篇文章来讨论一些单独的情况。[2]

新版本包含15个全新的重构,因为它们不是对现有重构的一般化或重命名188app彩票ios。这些都是:

将函数组合到类中
将功能与变换相结合
将语句移动到函数中
将陈述转移到呼叫者
删除死者代码
重命名字段
重命名变量
将命令替换为功能
用查询替换派生变量
用函数调用替换内联代码
用管道替换循环
用参数替换查询
用委托替换子类
返回修改后的值
分裂阶段

我意识到单独的名称不会对这些新的重构做什么来传达这一点,或者广泛的重构如何与第一版中的内容不同。188app彩票ios在适当的时候,我将更新在线目录提供更多信息。


脚注

1:这68项不包括原著中的4项“大重构”。188app彩票ios正如我之前提到的,我认为这些类型的主题最好被捕捉为可以出现在网上的文章。

2:我是否这样做取决于读者是否似乎兴趣,以及如何对其他事情优先考虑我想在未来几个月内写的。