重构
带问题看书
什么是重构?
何时应该重构?
哪些地方要重构?
如何开始重构?
什么是重构
在不改变代码外在行为的前提下,对代码进行修改,以改进程序的内部结构
为什么应该重构
如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便的达成目的,那就先重构这个程序,使特性的添加较为容易,然后再添加特性
事不过三,三则重构
何时不应该重构
只有绝大部分代码可以正常工作的时候才能重构,否则就是重写
如何开始重构?
- 重构前必须先有测试配套
- 重构应该逐步微小修改
- 重命名有意义的变量
- 不断缩减长代码
- 搬移代码到它应该在的地方
- 一个函数只做一件事
- 寻找引用点
重新开始组织函数
- 提炼函数:将代码放到一个独立函数中,并让函数名称解释该段代码用途
- 以它做什么命名而不是怎么做命名
- 内联函数:在函数调用点插入函数本体,然后移除该函数(函数需要非常简单)
- 内联临时变量:将所有对该变量的引用动作,替换为它赋值的那个表达式本身
- 以查询取代临时变量:把表达式提炼到一个独立函数中,将这个临时变量的所有引用点替换为对新函数的调用,此后新函数可被其他函数复用
- 使用解释性变量
- 分解临时变量
- 移除对参数的赋值
- 使用函数对象取代函数
- 替换算法