文章内容和思路来自《重构-改善既有代码的设计》
1> 提炼函数:浏览一段代码,理解其作用,然后将其提炼到一个独立的函数中,并以这段代码的用途为这个函数命名
2> 内联函数:有时候会遇到某些函数,其内部实现和函数名称同样清晰易读;也可能是你重构了函数的内部实现,使其清晰易读;若果真如此,就应当去掉该函数直接使用其中的代码
3> 提炼变量:表达式有可能非常复杂而难以理解。这种情况下,局部变量可以帮助我们将表达式分解为比较容易管理的形式
4> 内联变量:在一个函数内部,变量能给表达式提供有意义的名字,因此变量通常是个好东西。但有时候,这个名字并不比表达式本身更具表现力
5> 函数声明改变:函数命名一个好的名字能让我一眼看出函数的用途而不用去看他的实现
6> 封装变量:如果一个变量的作用域超出单个函数,那么就应当进行封装;封装可以提供一个清晰的观测点
7> 变量改名:好的命名是变成的核心
8> 引入参数对象:一组数据项总是结伴同行,出没于一个又一个函数,这样的一组数据就是数据泥团,适合代之以一个数据结构
9> 函数组合成类:如果一组函数形影不离的操作同一块数据,适合为其组建一个新类
10> 拆分阶段:每当看到一段代码在同时处理两件事情的时候,就应当考虑将其拆分成两段独立的代码
11> 函数组合成变换:函数组合成变换的替代方案就是函数组合成类,后者的做法是先用源数据创建一个类,再把相关的计算逻辑搬移到类中。这两个有一个重要的区别:如果代码会对源数据做更新,那么使用类要好得多;如果使用变换,派生数据会被存储在新生成的记录中,一旦源数据被修改,就会遭遇数据不一致