Skip to main content

別寫乾淨的程式

· 預估閱讀時間: 26 分鐘
zsl0621
Homo sapiens

最近看到黑暗執行緒關於重構的文章很感興趣,存了一陣子終於有機會搬出來稍微整理一下,本文是個人紀錄和閱讀心得。程式新手上網查怎麼寫好程式就會看到如何撰寫乾淨的程式寫的那些原則,然而很多文章把「必要原則」和「建議原則」寫在一起導致很多誤會,以 DRY 為例:

Repeat Yourself

  1. 工程師 A 觀察到程式碼中存在重複。
  2. 工程師 A 將這些重複提取出來並賦予它一個名稱,形成新的抽象化,這可能是一個方法,也可能是一個類別。
  3. 工程師 A 將重複的程式碼替換為新的抽象化,感覺程式碼變得完美無缺後心滿意足地離開。

時間過去……

  1. 新的需求出現,現有的抽象化幾乎能滿足,但仍需進行少許改動。
  2. 工程師 B 被指派來實現這項需求,他們希望能保留現有的抽象化,於是通過增加參數和條件邏輯來適應新的需求。

這樣一來,曾經的通用抽象化開始因應不同情況而表現出不同行為。

隨著更多需求的出現,這個過程持續重複:

  1. 又來一個工程師 X。
  2. 又增加一個參數。
  3. 又新增一個條件判斷。

最終,程式碼變得難以理解且錯誤頻出。而此時,你正好加入了這個項目,並開始陷入混亂。