2014-4-28
【重构定义】
重构:对软件内部机构的一种调整,目的是不改变软件外部行为的前提下,提高其可理解性,降低修改成本。
其实在程序设计之初,就需要大量的时间去考量程序的架构和具体类的设计,尽量避免在后续的开发和维护中做大量的重构,程序之初要完善自己的设计思路并形成严谨的文档,避免后来的重构毫无思绪,或者是错误的重构导致程序的其他隐藏的重要节点被扼杀。故重构虽然无法避免,但是我们要尽量做到“无需大重构”。
【为何重构】
一句话:让程序更加的健壮,更富扩展性,可维护性,可理解性。
把重构养成一个好的习惯,每次重构后,你都会得到更多的程序设计灵感,渐渐会形成自己的编程思维。
【何时重构】
三次法则:添加功能,修补错误,复审代码
【代码的坏味道】
- 重复代码 ans:提取成函数
- 过长函数 ans:函数分段为小函数
- 过大类 ans:重新设计类,追求一个类只对应一个变化因子
- 过长参数列 ans:将参数列提取为一个结构体,传该结构体的对象
- 发散式变化 ans:重新设计类,追求一个类只对应一个变化因子
- 霰弹式修改
- 依恋情节 ans:将函数移到依赖性较强的类中
- 数据泥团 ans:将这些联袂出现的数据抽离为一个结构或类
- 基本型别偏执
- switch惊悚现身 ans:多态
- 平行继承体系
- 冗赘类
- 夸夸其谈未来性 ans:这点我保留意见
- 过度耦合
- 过度使用代理
- 不完美的程序类库