重构:改善既有代码的设计有感3

书的第六章讲到重新组织函数有以下这么几个点

1 . Extract Method 提炼函数
将一段代码放进一个独立函数中,并让函数名称解释该函数的用途。
增加可读性,函数粒度小更容易被复用和覆写。

2 . Inline Method(内联函数)
在函数调用点插入函数本体,然后移除该函数。
函数的本体与名称同样清楚易懂,间接层太多反而不易理解。

3 . Inline Temp(内联临时变量)
将所有对该变量的引用动作,替换为对它赋值的那个表达式自身。

4 . Replace Temp with Query(以查询取代临时变量)
将一个表达式提炼到一个独立函数中,并将临时变量的引用点替换为对函数的调用。
临时变量扩展为查询函数,就可以将使用范围扩展到整个类。
减少临时变量,使函数更短更易维护。

5 . Introduce Explaining Variable(引入解释性变量)
将该复杂表达式的结果放进一个临时变量,以变量名来解释其用途。

6 . Split Temporary Variable(分解临时变量)
针对每次赋值,创造一个独立、对应的临时变量。
临时变量会被多次赋值,容易产生理解歧义。
如果变量被多次赋值(除了“循环变量”和“结果收集变量”),说明承担了多个职责,应该分解。

7 . Remove Assignments to Parameters(移除对参数的赋值)
以一个临时变量取代该参数的位置。
对参数赋值容易降低代码的清晰度;
容易混淆按值传递和按引用传递的方式 ;

8 . Replace Method with Method object 函数对象取代函数
一个大型函数如果包含了很多临时变量,用Extract Method很难拆解,
可以把函数放到一个新创建的类中,把临时变量变成类的实体变量,再用Extract Method拆解。

9 . Substitute Algorithm 替换算法
复杂的算法会增加维护的成本,替换成较简单的算法实现,往往能明显提高代码的可读性和可维护性。

作者提出这几个点来告诉我们怎样更好更健康的来书写我们的代码,是一本适合有代码开发经历的程序员阅读,会有醍醐灌顶的感觉,同时也需要比较高的技术力,至少以我目前的水平我很多东西做不到,甚至理解不了,这本书,会让程序员对代码有敬畏之心要谨慎考虑开发代码,需要考虑的东西很多,而我们需要注意的去意识到问题,修改问题,提高开发水平。




 

posted @ 2021-09-28 23:23  不咬牙  阅读(33)  评论(0编辑  收藏  举报