1.重构:对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其理解性,降低其修改成本。
2.为何重构:
1. 改进代码设计(重构的最终目标就是 设计模式)
2.使代码更易被理解(提高代码质量)
3.帮助你找到臭虫
4.帮助你提高编程速度
3.什么时候重构呢?
三次法则,第一次做某事只管去做,第二次做类似的事会产生反感但是去做了,第3次在做类似的事就应该重构。
1.添加功能时一并重构
2.修补错误时一并重构
3.复审代码时一并重构
4.重构对性能的影响?
重构必然会使软件运行变慢但是它也是软件优化更易进行。
5.代码的坏味道?
1.Duplicated Code 重复代码,这是首当其中的坏味道。
2.Long Method 过长函数
3.Large Class 过大类
4.Long Parameter List 过长参数列
5.Divergent Change 发散式变化
6.Shotgun Surgery 散弹式修改
7.Feature Envy 依恋情节
8.Data Clumps 数据泥团
9.PrimitiveObsession 基本型别偏执
10.Switch Statements switch惊悚现身
11.Paralle了Inheritance Hierarchies 平行继承体系
12.Lazy Class 冗赘类
13.Speculative Generality 夸夸其谈未来性
14.Temporary Field 令人迷惑的暂时值域
15.Message Chains 过度耦合的消息链
16.Middle Man 中间转手人
17.Inappropriate Intimacy 狎昵关系
18.Alternative Classwith Different Interfaces 异曲同工的类
19.Incomplete Libray Class
20.Data Class 纯稚的数据类
21.Refused Bequest 被拒绝的遗赠
22.Comments 过多的注释,代码说明了一些
6.如果你想重构,首先前提是要有个可靠的测试环境。
7.重构的基本技巧就是小步前进,频繁测试。