重構,改善既有代碼的設計 第二章(1)

          @關于間接層的概念。

          間接層就是我們所提煉出來的小函數。本來事情是可以交給一個大函數一次性去執行完的,可是我們為什么還要把他分割成小函數,再委托小函數這個間接層去完成事情呢。以下是作者總結出來的三點間接層的好處。

          1、 允許邏輯共享。也就是說小函數做的這些小事情,子類也同樣可以做,而且跟其他事情互不干擾。

          2、間接層給了我們一個解釋自己意圖的機會。間接層允許我們選擇最適合表達我們意圖的名字來命名,那在調用這些函數的時候,我一看他們的名字就知道他們可能會做些什么事情。就像Justin昨天寫的那個 A()

                                      {

                                               …

                                               ….

                                               ….   200 

          }

          改成

          A()

          {

                   A1();

                   A2();

                   A3();

          }

          A1()

          {

                   …….

          }

          A2(){….}

          A3(){….}

          這樣你在整理邏輯的時候,頭腦會很清醒。(因為名字是我們賦予他們的意義)

          3、將變化加以隔離,當我需要修改一些邏輯的時候,我可以把我在整個項目中掀起的波瀾降低很多。

          @在有些開源的框架內,我的接口名字已經公布了,可是現在我在重構的時候需要改變這些接口名字,改怎么辦呢?

          這時候可以保留舊的接口,然后在舊的接口中用新接口來實現邏輯。一直持續到所有用戶都開始使用新接口的時候,再把這個舊接口去掉。

          @這個世界不存在一條萬能的定律能解決一切問題(我曾經想象要是有這么一條定律就好了,這也是很多哲學家,科學家所追求過的),所以不要試圖用重構來拯救整個世界。有以下幾種情況重構不適用。

          當代碼已經腐朽到連正常功能都不能運行的時候,也許重寫(從頭再來一遍)比重構要來的簡單。

          有的時候臨近發布,我們要趕眼前的時間,就不應重構了。重構其實是一劑中藥,雖然藥效很好,但是效果卻也來的慢一些。如果是趕時間發布,那就不要寄希望于重構了。重構是我們欠的債,很多時候我們都是舉債來發布的,但是債都是有利息的,“過于復雜的代碼所造成的【維護和擴展的額外開銷】就是利息。一定的利息我們可以承受,但是利息過高就會被拖垮。“出來混總是要還的”。最近幾次發布都通宵,這也許就是我們的重構債欠的有點過多的信號。是時候來償還一些債了。


          posted on 2010-02-04 11:36 鍵盤動物 閱讀(259) 評論(1)  編輯  收藏

          評論

          # re: 重構,改善既有代碼的設計 第二章(1)[未登錄] 2010-02-04 14:18 呵呵

          不錯  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2010年2月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28123456
          78910111213

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          新聞分類

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 集安市| 巴马| 陆河县| 论坛| 赫章县| 海淀区| 姜堰市| 贵阳市| 共和县| 苍南县| 永兴县| 桂平市| 四会市| 英山县| 漯河市| 剑川县| 长顺县| 沈丘县| 南靖县| 廊坊市| 西平县| 长子县| 乐至县| 集安市| 大埔县| 时尚| 巴中市| 明星| 克什克腾旗| 济宁市| 丁青县| 杭锦后旗| 巴南区| 赤城县| 玉山县| 平顶山市| 济源市| 灵宝市| 马鞍山市| 建瓯市| 吉水县|