What

重构(Refactoring)是什么?

不改变软件可观察行为的前提下,调整其结构
如何进行“不改变软件可观察行为”的修改动作

Where

为什么要做重构?

软件的复杂性来自于大量的不确定性
而这个不确定事实上是无法避免的

重构可以高效安全地改善内部设计
使之适应外部的不确定性和频繁变化

when

什么时候重构?

事不过三,三则重构

where

重构什么地方?

代码的坏味道

如果尿布臭了,就换掉它

代码的坏味道

  • 神秘命名
  • 重复代码
  • 过长函数
  • 过长参数列表
  • 全局数据
  • 可变数据
  • 发散式变化
  • 霰弹式修改
  • 依恋情节
  • 数据泥团
  • 基本类型偏执
  • 冗赘的元素
  • 代码的坏味道

  • 重复的switch
  • 循环语句
  • 夸夸其谈的通用性
  • 临时字段
  • 过长的消息链
  • 中间人
  • 内幕交易
  • 过大的类
  • 异曲同工的类
  • 纯数据类
  • 被拒绝的遗赠
  • 注释
  • who

    谁来重构?

    代码属于集体

    集体对代码负责

    所有人都有义务消除坏味道

    及时沟通

    how

    如何重构

    就是这样,每一次都是很小的一步

    other

    需要注意的事项

    合格的重构

  • 消除味道
  • 始终工作
  • 持续集成
  • 随时中止
  • 断点续传
  • 过程可逆
  • 重构是完全针对代码结构的行为
    与代码的逻辑没有关系。

    自动化重构

    正确重构,让代码永远年轻

    练重构,无BUG,不加班!