正确的重构方式:不会引入错误并有条不紊地改进程序结构
熟练掌握众多重构手法,将思辨与实践结合,迭代持续开展重构工作。
运用大量微小且保持软件行为的重构步骤,一步步达成大规模的修改。
在开始重构前,我们需要先通读代码,并尝试理解代码如何工作,然后通过重构将这些理解从脑海里搬回到代码中。基于已经更为清晰的代码,我们更容易理解和发现更深层次的设计问题,从而形成积极正向的反馈环。
通过小且简单的重构步伐,并且每一步都保证代码处于编译通过和测试通过的可工作状态,有条不稳地以可控、高效、有序的方式进行重构,并保持代码永远处于可工作状态。
区别于“结构调整”
如果有人说他们的代码在重构过程中有一两天时间不可用,基本上可以确定,他们在做的不是重构,而是“结构调整”。结构调整:泛指对代码库进行的各种形式的重新组织或清理。
重构也属于结构调整,但是特定的一类结构调整。
常用重构手法列表,按频率高到低排列
- 提炼函数
- 提炼变量
- 内联函数
- 内联变量
- 改变函数声明
- 变量改名
- 封装变量
- 引入参数对象
- 函数组合成类
- 函数组合成变换
- 拆分阶段
- 封装记录
- 封装集合
- 以对象取代基本类型
- 以查询取代临时变量
- 提炼类
- 内联类
- 隐藏委托关系
- 移除中间人
- 替换算法
- 搬移函数
- 搬移字段
- 搬移语句到函数
- 搬移语句到调用者
- 以函数调用取代内联代码
- 拆分循环
- 以管道取代循环
- 移除死代码
- 拆分变量
- 以查询取代派生变量
- 将引用对象改为值对象
- 将值对象改为引用对象
- 分解条件表达式
- 合并条件表达式
- 以卫语句取代嵌套条件表达式
- 以多态取代条件表达式
- 引入特例(引入空对象)
- 引入断言
- 将查询函数和修改函数分离
- 函数参数化
- 移除标记参数
- 保持对象完整
- 以查询取代参数
- 以参数取代查询
- 移除设值函数
- 以工厂函数取代构造函数
- 以命令取代函数
- 以函数取代命令
- 函数上移
- 字段上移
- 构造函数本体上移
- 函数下移
- 字段下移
- 提炼超类
- 移除子类
- 折叠继承体系
- 以子类取代类型码
- 以委托取代子类
- 以委托取代超类
重点推荐重构必看的两本书籍
大师经典著作值得我们常伴左右,并学会敬畏代码工程,时刻警醒,写出好的代码、激励我们更好地设计需求的代码实现。
重构 改善既有代码的设计
代码整洁之道
其他相关书籍推荐:
代码大全2
人月神话(纪念典藏版)
设计模式:可复用面向对象软件的基础
Python测试驱动开发
如果还有具体问题可以进一步提问哦

308

被折叠的 条评论
为什么被折叠?



