一、概念

    运用一系列重构手法,对既有软件内部结构进行调整,在不改变可观察外在行为的前提下,让软件更容易理解、扩展、维护。

 

二、为什么重构

    程序有两方面的价值:今天可以做什么,明天可以做什么。对于今天的工作,开发人员了解得很清楚;但是对于明天的事情,了解得不充分,也不可能很充分。对于只考虑了今天的程序和对明天了解不充分的程序,需要持续地重构。在添加功能、修改错误和代码审核时都可以进行重构。

 

三、重构与设计

      重构与设计是互补的关系,设计是在编码前完成、找到一种系统的合理解决方案(不一定是最好的),重构是在编码和后期维护的过程中逐渐优化,逐渐达到最好、最适合。设计和重构相辅相成,共同担负起代码结构优化的重任。

 

四、重构与性能

      重构必然会是程序变慢,但会让软件的优化更易进行。重构后函数粒度很小,有利于性能分析;重构后的代码更容易修改,让解决性能瓶颈更加容易。除了性能要求很严格的系统,其它情况下,都最好先写出可调的软件,然后逐渐调整(调试、监控、分析等方式),获得足够高的速度,满足性能要求。

 

五、重构前提

      构筑测试体系

 

六、重构最佳实践

1.     重新组织函数

2.     对象间搬移对象特性

3.     重新组织数据

4.     简化条件表达式

5.     简化函数调用

6.     处理概括关系

7.     大型重构:将大型系统分解成小的系统,对小系统进行重构