1. 程式人生 > >重構 改善既有程式碼的設計

重構 改善既有程式碼的設計

經過一個多月的時間,我讀完了這本重構的書籍。與其說是讀完,不如說是掃完的。因為中間關於重構的手法很多,有很多規則我是沒有親手嘗試的,其實也沒有這個必要。
在這本書中,除了中間部分大量的重構手法之外,作者還在書的前後兩部分用大量文字說明如何理解重構和怎樣使用重構。說白了,只學會重構的手法只學會了重構的一半都不到,更重要的是融匯貫通重構的思想。
需要注意的是,作者是從Java的早起版本開始講解重構的。對於現在我們程式設計師寫程式碼的習慣來說,一部分的重構手法看起來已經過時了,我們在閱讀的時候可以快速跳過。其實說過時也是不太準確的,因為作者在那個年代,能採用那種手法已經很了不起了。
在書中,作者很多次都強調,不要學習了重構這本書中的重構方法就以為自己學會了重構這項技能,不可能的。重構是貫穿在你編碼的整個生涯中的。你也不要為了重構去重構。重構這條路很長。
下面我整理了一些讀書時的一些筆記,重構方法的部分就不一一列舉了,每個人的情況不同,我只列一些重構本身的一些東西。

所謂重構(refactoring)是這樣一個過程:在不改變程式碼外在行為的前提下,對程式碼做出修改,以改進內部程式的結構。
重構是一種經千錘百煉形成的有條不紊的程式整理方法,可以最大限度地減少整理過程中引入錯誤的機率。本質上說,重構就是在程式碼寫好之後改變它的設計。

任何一個傻瓜都能寫出計算機可以理解的程式碼。唯有寫出人類容易理解的程式碼,才是優秀的程式設計師。

重構(名詞):對軟體內部結構的一種調整,目的是在不改變軟體可觀察行為的前提下,提高其可理解性,降低其修改成本。
重構(動詞):使用一系列重構手法,在不改變軟體可觀察行為的前提下,調整其結構。

兩頂帽子:新增新功能,重構。

重構的目的:

  • 重構改進軟體設計
  • 重構使軟體更容易理解
  • 重構幫助我們找到Bug
  • 重構提高變成速度

良好的設計是快速開發的根本。

何時重構?
三次法則:

  • 第一次做某件事時只管去做;
  • 第二次做類似的事會產生反感,但無論如何還是可以去做;
  • 第三次在做類似的事,你就應該重構。
  • 新增功能時重構
  • 修補錯誤時重構
  • 複審程式碼時重構

程式目標:

  1. 容易閱讀
  2. 所有邏輯都只在唯一地點指定
  3. 新的改動不會危及現有行為
  4. 儘可能簡單表達條件邏輯

重構的基本技巧:小步前進,頻繁測試。

以上是幫助我們理解重構的一些Tips,重構的各種技巧就如作者所說,就像一本字典,我們再需要的時候可以去查閱,完全沒有必要去當做一本技術型書籍一次記完,這也是不可取的。這也是我第一次閱讀速度較快的原因,主要就在於書中間部分大量的重構技巧上,我只是掃描式閱讀,重點難記的地方做了筆記,日後還需慢慢在專案實戰中應用才行。