[读书笔记] 重构改善既有代码的设计(1)

《重构:改善既有代码的设计》已经读了一大半了,书中讲了很多的重构手段和指导原则,但整体感受下来,重构的一个主要目的就是消除重复,放眼看去,众多的重构手段都是在消除重复代码,提炼函数,提炼父类等等。
之后会针对每一章,整理一下读书笔记,方便之后参阅。

第一章:重构,第一个案例

着一章主要是起到入门的作用,以一个不是很复杂的例子,一步步演示可以进行哪些重构,也用到了后面章节提到的部分重构手段,但是主要目的还是给我们一个关于重构的整体印象。

第二章:重构原则

该章节给出了重构的定义,分别是作为动词时和作为名词时:

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

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

也就是说,不管重构是作为动词还是名词,它都不涉及新功能方面的内容,也不会添加,修改,删除已有功能,重构是为了让代码更清晰,更容易修改已有功能,拓展新功能。

重构的原因:
  1. 改进软件设计。糟糕的设计会给代码扩展和维护带来非常多的不便和风险,也会增加开发成本,并且代码结构会越来越糟,并且会一错再错,于是该设计就腐败得愈快,此时往往是进行重构得好时机,重新调整设计,给代码第二次生命。
  2. 使软件更容易理解。重构的一个必备的前提条件就是你要首先要弄明白即将重构的代码做了什么,也就是必要要在理解代码的基础上进行重构,否则,你无法保证重构后的代码能覆盖重构前的所有情况,并且没有bug,这是因为重构并不会伴有第一次实现代码的那么大量全面的测试,否则重构就成了重写,失去了意义。基于这个前提,每每对一段代码进行重构时,我们往往可以看到以前看不到的设计层面的东西。
  3. 帮助找到bug。结合第二条,对代码的理解愈深,越容易发现深藏其下的bug。
  4. 提高编程速度。良好的设计时维持软件开发速度的根本,这或许就是所谓的“磨刀不误砍材功”吧。
重构的时机:

事不过三,三则重构。

  1. 添加功能时重构。因为此时最容易发现之前设计上存在的问题,或者代码结构上存在的瑕疵。不要担心重构会影响新特性的增加时间。

    重构是一个快速流畅的过程,一旦完成重构,新特性的添加就会更快速、更流畅。

  2. 修补错误时重构。

  3. 审查代码时重构。

当然,并不是所有情况下都可以重构,比如,代码根本不能正常运作,此时可能最有效的手段是重写而不是重构。:(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值