重构的原则
洪流学堂,让你快人几步。
本篇内容来自洪流读书会精选内容。
昨天我们已经了解到为什么要重构?接下来我们将从区分重构与性能优化、重构时我们的角色定位两个方面来解读一下重构的原则。
重构的原则
区分重构和性能优化
在真正开始介绍重构的原则前,我们需要对重构本身下一个定义,并在此定义的基础上与性能优化做一下区分。
重构本身是对软件内部结构的一种调整,通过使用一系列的重构手法在不改变软件所有功能行为的前提下,调整其结构以便提高其可理解性,降低后期修改的成本。
如果有人说起他们的代码在重构过程中有一两天时间不可以用,那我基本上可以确定,他们在做的事不是重构。
为什么这么说呢?
重构的关键在于运用大量微小而保持软件行为的步骤,一步步达成大规模的修改。每个单独的重构要么很小,要么由若干小步骤组合而成。因此,在重构的过程中,代码很少进入不可工作的状态,即便重构没有完成,也可以在任何时候停下来。
在这里可能有人会说你所指的重构不就是性能优化吗?
那么我们先来比较一下这两者,我们先看看重构与性能优化的相似之处:两者都需要修改代码,并且两者都不会改变程序的整体功能。
那两者的差别在哪儿呢?
两者的差别在于其目的:重构是为了让代码“更容易理解”、“更易于修改”,仔细想想这可能会使程序运行的更快,也可能使程序运行的更慢;而在性能优化时,我们只关心让程序运行的更快,而这样的初衷可能会使得到的代码更难理解和维护。
重构时我们的角色定位
上面我们介绍了何谓重构,接下来我们来看看要介绍的第二点,做重构这件事时我该如何定位自己?
在软件开发过程中,我可能会发现自己经常变换角色。首先我会尝试添加新功能,然后会意识到:如果把程序修改一下,功能的添加会容易得多。于是我换一种角色,做一会儿重构的工作。程序结构调整好之后,我又回到原来的角色上继续添加新功能。
新功能正常工作后,我又发现自己的编码造成程序难以理解,于是又去重构……
整个过程时间不长,但无论何时我都清楚自己在扮演哪种角色,并且明白不同人物角色对编程状态所提出的不同要求。
这是我们说的第二点,在重构中我们扮演的角色。
小结
今天我们从区分重构与性能优化、重构时我们的角色定位两个方面对重构的原则进行了解读,下次我将从重构带给我们什么、何时重构两个方面来为大家进一步解读重构的原则。
我是大智,你的技术探路者,下次见!
别走!点赞,收藏哦!
好,你可以走了。