浅谈软件重构与性能优化2009.08参考书目 重构:改善既有代码的设计 作者: MARTIN FOWLER 译者:侯捷 熊节 2008-04-02 什么是重构? 重构( Refactoring ):在不改变软件的功能和外部可见性的情况下,为了改善软件的结构,提高清晰性、可扩展性和可重用性而对软件进行的改造,对代码内部的结构进行优化。 2008-04-02 为什么要重构 ? 改进软件的设计 提高代码质量,可维护性 Refactoring 帮助尽早的发现错误( Defects ) Refactoring 可以提高提高开发速度 2008-04-02 什么时候需要重构 ? 在开始增加一个新的功能之前 在修复一个错误的时候 在做 Code Review 的时候 2008-04-02 何时不应该重构 ? 代码太混乱,设计完全错误 明天是 DeadLine 重构的工作量显著的影响 Estimate 2008-04-02 重构流程 读懂代码(包括测试例子代码) 进行重构 运行所有的 Unit Tests 2008-04-02 重构与设计 重构与设计是互补的 , 程序应该是先设计 , 而在开始编码后 , 设计上的不足可以用重构来弥补 . 设计应该是适度的设计 , 而不必过度的设计 . 如果能很容易的通过重构来适应需求的变化 , 那么就不必过度的设计 , 当需求改变时再重构代码 。 2008-04-02 重构与性能 时间预算法 持续关注法 良好的分解方式 2008-04-02 时间预算法 在设计时就对程序花费的时间进行预算 ,通常用于性能要求极高的实时系统 . 普通的企业应用程序一般对性能要求不高 .只要不太慢就可以了 。 2008-04-02 持续关注法 要求程序员在任何时间都要设法保持系统的高性能 . 这个方法有个缺陷 , 就是大部分的程序 90% 的优化工作都是白费劲 , 这样会浪费大量的时间 。 2008-04-02 良好的分解方式 这个方式是在开发程序阶段不对性能投以任何关注 , 直到进入性能优化阶段 ,再分析程序中性能差的程序 , 然后对这些程序进分解 , 查出性能差的程序 , 进行优化。 2008-04-02 代码编写的 22 宗罪( Bad Smells in Code ) ( 1 ) Duplicated Code (重复的代码)( 2 ) Long Method (过长函数)( 3 ) Large Class (过大类)( 4 ) Long Parameter List (过长参数列)( 5 ) Divergent Change (发散式变化)( 6 ) Shortgun Surgery (霰弹...