
第七章
在汙物中打滾
如同狗會吃掉牠的嘔吐物,
笨蛋也會重複做蠢事。
- Psalms 26:11
我們都遇過這個東西:
流沙程式碼
(
quicksand code
)。你會在不知不覺中踏進去,很快
就會有沉下去的感覺。程式碼很縝密,不具可塑性,且排斥任何移動它的動作。你投入
愈多勞力,就會陷愈深。它是數位時代的殺人陷阱。
為什麼有效率的程式員會靠近這種(禮貌上來說)
不太好
的程式碼?我們
對抗垃圾
的策
略是什麼?
不要驚慌,穿上你的防沙褲,我們要沉進去了…55
嗅出徵兆
有一些程式碼很棒,就像是很好的藝術品,或精心撰寫的詩歌。它有明顯的結構、可識
別的韻律、具有節奏感,以及連貫性與美感,讓閱讀成為一種享受,你可以很開心地使
用它。
但是很遺憾地,事情並非總是如此。
有些程式碼很雜亂且沒有結構:有繞來繞去的 goto 把演算法隱藏起來。有的很難閱讀:
排版方式很糟糕,並且用很爛的命名方式。有些程式碼被沒必要的僵化結構詛咒:惡劣
的耦合與差勁的內聚力。有一些程式碼的構造低劣:用低層次的邏輯寫成糾纏不清的 UI