【王建興專欄】軟體開發必須面對的Dirty Code
對於程式設計來說,所產出的程式碼,怎樣才算骯髒?為什麼它會被視為「骯髒」?
其實,不太容易找到一個確切的Dirty Code的定義,它似乎包括了大多數程式設計者,對於自己所不喜歡的程式風格或特性。
一般來說,恐怕大多數的程式設計者都會同意,那些「可讀性低」、「不容易維護」、「不利日後修改」、「不利日後擴充」、「沒有考慮周詳完備,只求應急了事」的程式碼,是所謂的Dirty Code。
就像你在程式碼的內容中,如果看到有人「寫死(hardcode)」常數,你可能就會覺得這有點 Dirty,因為一旦想要修改這個常數,就得找出程式碼中所有用到的地方,並且逐一修改,這顯然滿足「可讀性低」、「不容易維護」、「不利日後修改」等標準。
又像是有人使用 goto 之類的指令,大肆在程式碼片段中任意地跳躍,或是使用未封裝的全域變數,放任程式碼四處加以修改、…… 等等。對於這些風格或寫法,相信讀者都會同意還滿 Dirty 的。
另一方面,自從「重構(Refactoring)」的方法問世以來,其中系統性的整理了若干所謂程式碼的「壞味道(Bad Smell)」,像是「重複的程式碼」、「過長的函式」、「過大的類別」等等。
但什麼原因導致程式設計者寫下 Dirty Code?
除了程式設計者的知識和技能不夠之外,另一個引發Dirty Code的重要原因,就是緊迫的時程。
我們也常會看到Quick and Dirty Code 這個名詞,原來 Dirty 是伴隨著Quick而來。為什麼想貪快而不顧髒?有時候是出自於天性,明明知道更不髒的寫法,但就是貪快;更多時候是因為時程壓力太大,為了縮短時間,也只好「冒險一髒」了。
http://www.ithome.com.tw/itadm/article.php?c=83209&s=1
Search