如果将一个软件系统或项目比喻成一个国家,那么重构就好比是改革,推翻老的系统,重写一个新系统就好比是革命。重构就是戊戌变法,重写就是辛亥革命。革命总是比改革要付出更多的代价,因为革命是要流血的。重写一个系统也是如此,要付出比重构更大的代价,因为原有的代码基本上全抛弃,公司曾经为那些编写老系统代码的程序员支付的工资就全付之东流了。但是,国内大部分软件公司仍然每隔三四年就上演一次这样的悲剧。究其原因,乃是不知道用重构这样小的代价去改善既有代码的设计。即便听说过重构,但却对重构的技巧、本质和意义一知半解,结果往往打着重构的旗帜,却做着重写的工作。如果将一个软件系统或项目比喻成一个国家,那么重构就好比是改革,推翻老的系统,重写一个新系统就