重构的定义
名词形式:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。
动词形式:使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。
重构的好处
- 重构改进软件设计
- 重构使软件更容易理解
- 重构帮助找到bug
- 重构提高编程速度
代码的22种坏味道
- 重复代码(Duplicated Code)
- 过长函数(Long Method)
- 过大的类(Large Class)
- 过长参数列(Long Parameter List)
- 发散式变化(Divergent Change)
- 散弹式修改(Shotgun Surgery)
- 依恋情结(Feature Envy)
- 数据泥团(Data Clumps)
- 基本类型偏执(Primitive Obsession)
- switch惊悚现身(Switch Satement)
- 平行继承体系(Parallel Inheritance Hierarchies)
- 累赘类(Lazy Class)
- 夸夸其谈未来性(Speculative Generality)
- 令人迷惑的暂时字段(Temporary Field)
- 过度耦合的消息链(Message Chains)
- 中间人(Middle Man)
- 亲昵关系(Inappropriate Intimacy)
- 异曲同工的类(Alternative Classes with Different Interfaces)
- 不完美的库类(Incomplete Library Class)
- 纯稚的数据类(Data Class)
- 被拒绝的遗赠(Refused Bequest)
- 过多的注释(Comments)
《重构-改善既有代码的设计》一书才刚开始看,以后在实际生产中要牢记上述几条,刻意练习,才能形成习惯。