
第十六章
保持簡單
簡單是終極的複雜。
- Leonardo da Vinci
你以前聽過這樣的建議: "KISS",
Keep it simple, stupid
(保持簡單,愚蠢)。到底你有
多愚蠢,才會把
它
做錯?簡單化無疑是一個很棒的目標,你當然要在你的程式碼中努力
做到這一點。沒有程式員想要與過度複雜的程式共事。簡單的程式碼是透明的,它的結
構很清楚,你不會隱藏 bug,它很容易學習,而且容易使用。
那麼,為什麼不是所有程式都是如此?
在開發圈,有兩種簡單化:
錯誤
的,和
正確
的。我們想要達成的“簡單化”指的
不是
:
用你最輕鬆的方式來寫程式、抄近路、忽略所有令人討厭的複雜事物(把它掃到地毯下
面,希望它可以離開),完全成為一位程式傻瓜。
喔,如果真有這麼容易的話。現實世界中有太多程式員
確實
會用這種方式來寫程式。他
們的頭腦不會參與其中。他們其中有些人甚至沒有意識到他們做錯事情了,他們只是沒
有想太多就開始編寫,沒有意識到所有固有的微妙複雜性。
這種盲目的做法不會產生簡單的程式,而是過度簡化程式。簡單過頭的程式是不正確的
程式。因為它是一種病態,仔細想想,它的動作無法符合需求—通常它只會解決明顯的
“主要狀況”,忽略錯誤的條件,或無法正確地處理較不常出現的輸入。因此,過度簡
化的程式會窩藏錯誤。它們都是刻意被用來掩蓋更多不良的簡化程式碼的劣作。這些修
補程式會開始一個一個堆積起來,直到程式變成可怕的一團混亂,這跟具備良好的結構
的簡單程式完全相反。