重构-改善既有代码的设计 总结

来源:互联网 发布:淘宝账号冻结怎么解除 编辑:程序博客网 时间:2024/06/03 23:39
何谓重构?
重构是在不改变软件可观察行为的前提下,对代码做出修改,以改善其内部结构。
重构的目的是使软件更容易呗理解和修改。
重构时的两顶帽子:添加新功能以及重构。添加新功能时,你不应该重构既有的代码,只管添加新功能。重构时你就不能再添加功能,只管改进程序的结构。

为何重构?
重构改进软件的结构设计
重构使软件变的更容易理解
重构帮助找到代码缺陷
重构提高编程的速度与质量

何时重构?
事不过三,三则重构。
添加功能时重构。
修改错误时重构。
复审代码时重构。

重构与设计
第一种观念:设计是做软件开发的关键环节,后面的编程实现是机械式的低级劳动。
第二种观念:不必做设计,按照最初想法开始编码,有效运行之后再将它重构成型。

这两中观念的确都有实际案例最后获得了设计良好的软件,但这并不是最有效的途径。
前者设计压力大,后期风险高。后者没有整体结构,修改整合的工作量大。

综合这两个观念得出重构与设计彼此互补,这让软件设计向简化前进了一大步。我们可以先做预先设计,但是不必一定要找出正确的解决方案。只需要一个足够合理的解决方案就够了。在实现这个初始解决方案的时候,你对问题的理解也会慢慢加深,你可能会察觉到最佳方案和你当初的设想有些不用。只要有重构这把利器在手,就不成问题,因为重构让日后的修改成本不再高昂。

重构与性能
为了让软件更容易被理解,你常会做出一些使程序变慢的的修改。这时我们如何处理好重构给系统性能带来的影响?

三种编写快速软件的方法:
时间预算法,分解设计时就要做好预算。给每一个组件预先分配好一定的资源包括时间和执行轨迹。
时刻关注法,要求程序员在任何时间做任何事情时,都要设法保持系统的搞性能。
统计分析法,对大多数程序进行分析,会发现大半时间都消耗在一小半代码身上。有针对性的对小部分代码进行性能优化。

短期看来重构的确可能使软件变慢,但它使优化阶段的软件性能年调整更容易,最终还是会得到好的效果。