重构(Refactoring)这个词听起来很高大上,在编程领域常常被提起,但却经常被错误理解。往往在执行的时候,重构就是代表着重做。
结合最近的一些思考 ,简单说一下自己的理解:
1、重构不是推到重来,是通过在不改变外在表现的情况下,对结构进行逐步优化,从而达到改变软件的质量和性能的作用。
而且大部分情况下,对于快速变化的需求来说,如果如果需求不是确定的,那么重构要优于重写。就像画国画与油画的区别,国画需要心中有丘壑,讲究的是一气呵成,一次画不好,就要重来;而重构像油画,画错了可以刮掉、覆盖等手法,慢慢来的来修复。
2、不是代码写的混乱才需要重构,代码写的非常优雅也需要重构,比如说为了性能、架构、添加新功能等方面的需要。
3、代码重构是一个常态的过程,不是等到实在忍不了的时候才去重构。就像打扫房间,不能说屋里脏的下不去脚了才去打扫。
那会儿重构也解决不了问题了,得重写了。除非一个项目停止开发了,否则重构就不能停止。
4、优秀的架构也不是一次成型的,需要可以通过慢慢迭代等方式使之前设计不良的架构变得良好。这点跟建筑不太一样,盖房子的图纸画错了,只能是重来,但是软件的优点就是可以重构。
网友评论