第2章 重构原则

何谓重构

1.概念:作为名词时 → 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。

           作为动词时 → 使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。

2.两顶帽子:用重构技术开发软件时的“两顶帽子”,即添加新功能以及重构。添加新功能,就不应该修改既有代码,正在重构时,就不应该添加新功能,这两顶帽子可能经常变换,但要每次操作时搞清楚自己现在戴的是哪一顶。

为何重构

1.重构可以改进软件设计

2.重构使软件更容易理解

3.重构帮助找到bug,写出强健的代码

4.重构提高编程速度

何时重构

1.三次法则:事不过三,三则重构。也就是说第一次做某事只管去做,第二次做类似的事会有些反感,但无论如何还是可以去做,第三次再做类似的事时,就应该重构。

2.添加功能时重构:重构一是为了能帮我理解要修改的代码;二是当代码的设计,无法帮助我轻松添加我需要的特性,但我发现如果重构后这是最快途径,一旦完成重构,新特性的添加会更快更流畅,那么也会选择重构。

3.修补错误时重构

4.复审代码时重构

重构的必要性

目前有四个原因让人觉得代码难以相与:

1.难以阅读的程序,难以修改。

2.逻辑重复的程序,难以修改。

3.添加新行为时,需要修改已有代码的程序,难以修改。

4.带复杂条件逻辑的程序,难以修改。

我们希望的程序:

1.容易阅读

2.所有逻辑都只在唯一地点指定

3.新的改动不会影响现有行为

4.尽可能简单地表达条件逻辑

而重构,就是一条摆脱困境的道路,它能在不改变行为的前提下使其具备上述美好性质,使我们能够继续保持高速开发,从而增加程序的价值。

重构相关

一、修改接口

1.在重构接口时,千万不要复制接口实现,这会让你陷入重复代码的泥沼之中。

2.当重构好之后,调用新接口时,留下旧接口,但不要发布接口

二、重构与设计

1.预先设计,尽量避免以后重构

2.先找到一个稍稍合理地方案,就直接开干,干完后或者中途觉得有问题时,就进行重构(这也是我经常用的)

原文地址:https://www.cnblogs.com/wencheng9012/p/13496124.html