读《重构改善既有代码的设计》(二)

重构原则

何谓重构,第一个定义是名词形式:

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

重构的另一种用法是动词形式:

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

有人问:“重构就只是整理代码吗?”从某种角度来说,是的。但是又不止于此,因为它提供了一种更高效且受控的代码整理技术。

因此,定义还可以往两方面扩展。首先,重构的目的是使软件更容易被理解和修改。但必须对软件可观察的外部行为只造成很小变化,或者甚至不造成变化。与之形成对比的是性能优化。和重构一样,性能优化,通常不会改变组件的行为,只会改变其内部结构。但是两者出发点不同:性能优化往往使代码较难理解,但为了得到所需的性能你不得不那么做。

第二点,重构不会改变软件可观察的行为---重构之后软件功能一如既往。任何用户,不论最终用户或其他程序员,都不知道已经有东西发生了改变。

使用重构技术开发软件时,我们应该把自己的时间分配给两种截然不同的行为:添加新功能,以及重构。

为何重构

重构是个工具,它可以用于以下几个目的

重构改进软件设计

如果没有重构,程序的设计会逐渐腐败变质。重构很像是在整理代码,我们所做的就是让所有东西回到应处的位置上。代码结构的流失是累积性的。越难看出代码所代表的设计意图,就越难保护其中设计,于是该设计就腐败得越快。经常性的重构可以帮助代码维持自己该有的形态。

如果消除重复代码,我们就可以确定所有事物和行为在代码中只表述一次,这正是优秀设计的根本。

重构使软件更容易理解

重构可以帮助我们让代码更易读。在重构上花一点时间,可以让代码更好地表达自己的用途。这种编程模式的核心就是“准确说出我所要的”。

这种理解性还有另一方面的作用。我们可以利用重构来协助我理解不熟悉的打码。重构可以把我们带到更高的理解层次上。

重构帮助找到bug

对代码的理解,可以帮助我们找到bug。我们在重构的同时,加深理解代码的行为,并把新的理解反馈回去。搞清楚程序结构的同时,也清楚了自己的一些假设。更利于把bug揪出来。

重构提高编程速度

将前面的归结到最后,重构可以帮助我们更快速地开发程序。

良好设计是维持软件开发速度的根本。重构可以帮助你更快速地开发软件。因为它阻止系统腐败变质,它甚至可以提高设计质量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值