重构(二) -- 重构的原则

重构的定义

  • 名词:对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低修改成本
  • 动词:使用一系列重构手法,在不改变软件可观察行为的前提下调整其结构
  • 所以重点是使软件更容易被理解和修改,不改变软件可观察行为即软件功能一如既往

何时重构

  • 添加功能时重构
    重构是一个快速流畅的过程,帮助理解代码逻辑
  • 修补错误时重构
  • 复审代码时重构

间接层

  • 大多数重构都为程序引入了更多间接层,重构往往把大型对象拆成多个小型对象,把大型函数拆成多个小型函数
  • 间接层的价值:
    1:允许逻辑共享
    2:分开解释意图和实现,根据新的类或函数名称
    3:隔离变化,不需要担心一个对象的修改会影响到其他使用的地方
    4:封装条件逻辑,使用多态方式灵活而清晰地表达条件逻辑

重构的难题

现在我们只能明显看到重构的好处,但是还没有获得足够的经验知道其局限性

  • 数据库
    当数据库模型和对象模型变的不稳定时,可以在之间插入一个分隔层,帮助隔离两个模型各自的变化
  • 修改接口
    重构修改已发布接口时必须做到原始功能的兼容,可以尽量让旧接口调用新接口并将老接口标记为deprecated,并且谨慎发布接口
  • 难以通过重构手法完成的设计改动
    可能存在某些核心设计决策,无法以重构手法修改,可能就需要对选择候选设计方案时的难度进行考虑。
  • 何时不该重构
    将大块头软件重构为封装良好的小型组件,然后逐一对组件做出重构或重建的决定

重构与性能

不应该为了提高设计的纯洁性而忽视性能

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容