重构的方法有很多,这一张是最简单、最容易理解、最快捷的重构!
1.提炼函数、内联函数
两个方法,放在一起讲述
提炼函数,显而易见,重复的,且只有少数可控变量的函数,为什么不提炼出来?记得,当你使用一个函数第三次的时候好,不要再拷贝粘贴了,去提炼函数吧
内联函数:可以理解为,当你的多函数调用时,其中某个函数B中逻辑及其简单,且上级函数A没有太多逻辑,就可以使用内联函数,注释B函数,将其逻辑放到A函数中.一个明显的特点就是,代码的执行逻辑更加清晰可见!!!
2.提炼变量、内联变量
同类/反类重构方法统一位置解释
提炼变量:当个计算逻辑或者层级拆分需要再函数的多重地方使用,就可以将其提炼为变量,好处如下
好处:
1.有好的命名,逻辑清晰
2.分解了表达式,便于管理及开发
内联变量:在函数内部,变量命名并没有给很好的表现力,或者妨碍代码阅读,可以考虑使用内联变量,减少变量的使用
3.改变函数声明
有效的函数名称,可以很好的改变对代码的理解速率,对协同开发,十分有效
但,当改变函数声明时,请注意以下几点:
1.确定改变函数声明后,修改代码中所有的引用点
2.注意函数入参,是否有不同
3.测试相关功能~~~(你不能确保,你真的修改对了函数入参)
4. 封装变量、变量改名
在重构过程中,尤其是重构函数时,入参的排列顺序及注释会产生很大的误解,所以为了重构的方便性,以及管理入参,可以考虑使用封装变量的方法
或者,当可变数据超出当前作用域的时候,就可以将其封装
封装变量:将函数中多个入参,封装为一个对象
变量改名:有效且符合场景的名称,可以让那个代码更加便于阅读,同时,也可以通过深拷贝,拿出干净的数据
5.引入参数变量
这个我并不很安利
6.函数组合成类、函数组合成变换
函数组合成类:首先,将共同类的函数组合到同一个类中,便于后期使用调用,相关模块内容;其次可以以少量的初始化数据,进行初始化类,同时,类内函数互相调用,可以较少入参的传输;
函数组合成变换:很好理解,就是将数据的深拷贝,且拷贝后的部分同样的数据处理放到一个专门的类中
7.拆分函数
庞大的逻辑,不要想了,拆吧!!!!想想一个函数300行,可怕啊😨