在软件的领域里,没有完美的需求和设计,在项目的演进过程中,架构和代码会慢慢沉沦,而重构,若能善用之,软件的设计质量则能得到有效的保证。
有时候,在项目启动前,我们会花费很大的心力去寻找一个尽善尽美的设计;在项目实施过程中,总是觉得随着需求的变更、人员的变动,代码质量在一天天的变坏,周围弥漫着一种难受的气息。这时,如果我们将重构的理念如同贯彻编码规范那样融入到日常的开发过程中,我们会发现,程序会一直保持着良好的设计,周围的空气会变得清新,有重构在手,你会“随心所欲而不逾矩”。
以上描述了一种比较理想的状态,但是,一点一滴的重构,确实能从根本上改善我们的设计质量。重构不是短期的行为,切忌急功近利的想法,重构的作用体现于软件的整个生命周期,从设计到维护,它带来的效益即有短期的,也有长期的。从短期来看,代码质量和架构的改善,降低增加新功能带来的风险等等;长期来看,良好的结构,软件的可理解性和可维护性,都是对软件生命有着重要影响的因素。
夸了这么多,还没介绍什么是重构,简言之,重构就是不改变软件可观测行为的前提下改善其内部结构。将一个长函数中的几行功能单一的代码提炼为另一个小函数,这种平常软件开发过程中我们经常做的事情,就是一种经典的重构,它有很多函数,使长函数的可读性变强,小颗粒的函数更有利于代码重用,当然,也带来维护上的便利和灵活性。。。
由此看来,重构并不是什么艰深的技术,源于我们对设计质量的追求,源于我们对自己编写的代码的热爱,只要我们一点一滴的做,设计质量总会提高的。
这就是我看《重构—改善既有代码的设计》这本书之后的一点感想,正如我第一次看设计模式的书籍时的那种感叹,原来代码是这样设计出来的,如今我也发出同样的感叹,原来设计是这样重构而来的!