重构
概念
是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本。
意义
改进软件设计、使软件更容易理解、帮助找到bug、提高编程速度
何时进行重构工作
1、添加新功能时,发现很难,可以首先重构,以帮助自己理清内部逻辑
2、修改bug时,发现代码逻辑混乱、难理解,可以先重构,使bug可以很容易被发现
3、复审别人代码时,如果有更好的思路,和原作者共同进行重构
什么代码需要重构
一、重复代码
1、同一个类里两个函数有重复代码,把重复部分提炼成一个函数,让这两个函数调用
2、两个互为兄弟的子类中的函数包含重复代码,把重复部分提炼成一个函数放到父类中
3、两个毫不相干的类的函数包含重复代码,把重复部分提炼到第三个类中
二、过长函数
1、每当需要注释来说明点什么的时候,就需要写进一个独立函数中,每个函数只完成一个功能,而且函数名一定要见名知意
2、条件表达式、循环常常也可以提炼到独立函数中
三、过大的类
四、过长参数列
五、发散式变化
六、霰弹式修改
七、依恋情结
当一个函数中使用了非所属类的半打属性,应该把这个函数移至该类中
八、数据泥团
九、基本类型偏执
十、swith惊悚现身
大多数情况下用多态替换掉switch
十一、平行继承体系
十二、冗赘类
十三、夸夸其谈未来性
原则
1、第一步,建立一组可靠的测试环境,以免引入bug
2、添加新功能时不应该修改既有代码,只管添加新功能,通过测试。而重构的时候不能再添加功能,只管改进程序结构。
浙公网安备 33010602011771号