什麼是「乾淨的程式碼」?本書開篇引用多位軟體工程領域的巨擘與先驅觀點,試圖定義出高品質程式碼的樣貌。
貢獻觀點的軟體大師們
本書集結包括 Kent Beck、Bjarne Stroustrup (C++之父)、Grady Booch、Dave Thomas、 Michael Feathers、Ron Jeffries 與 Ward Cunningham 等人的智慧。
1. 乾淨程式碼的特徵#
綜合各家之言,我們可以歸納出 Clean Code 具備以下核心特質:
優良程式碼的六大特質#
| 特質 | 核心定義 | 實踐關鍵 |
|---|---|---|
| 專注 (Focused) | 意圖單一、職責明確 | 遵守 SRP,排除無關細節 |
| 俐落 (Elegant) | 僅包含必要資訊,零雜訊 | 命名精準,移除死代碼 |
| 精緻 (Refined) | 體積極小,高度可讀 | 將複雜邏輯拆解成易讀的小函式 |
| 倍受照顧 (Cared for) | 展現作者的細心與投入 | 統一排版、詳盡測試、清晰結構 |
| 減少重複 (No Duplication) | 充分表達想法,無冗餘 | 提煉通用邏輯,遵循 DRY 原則 |
| 直覺 (Intuitive) | 遵循「最小驚訝原則」 | 行為符合常識,不玩弄隱晦技巧 |
2. 為什麼我們在乎程式碼的整潔?#
保持程式碼的整潔,不僅是為美觀,
它直接影響到專案的成本效益,甚至關乎程式設計師在專業職場的生存之道。
許多人誤以為為了趕進度可以犧牲程式碼品質,但事實恰好相反:

Figure 1.1: Productivity vs. time
加快開發速度的唯一方法,就是隨時確保程式碼整齊潔淨。
3. 閱讀與寫作的關係#
我們常誤以為開發就是在「寫」程式,但實際上我們「讀」程式的時間遠超乎想像。
統計顯示,我們花在閱讀程式碼與撰寫程式碼的時間比例,約為 10 : 1。
既然我們大都在閱讀舊有程式碼(包含剛寫好的),
那麼結論就很明顯:程式碼越易閱讀,也就更易撰寫。
提升可讀性,就是提升寫作效率。
4. 行動準則:童子軍規則#
理解重要性後,我們該如何落實?作者提出一條簡單卻強大的建議,源於童子軍格言:
童子軍規則 (The Boy Scout Rule)
「離開營地前,都要讓它比你抵達時更乾淨。」
(Always leave the campground cleaner than you found it.)
在軟體開發中,這意味每次開啟檔案修改時,不僅要完成當下任務,還要順手清理周邊程式碼。
持續這麼做,系統品質就會隨時間逐漸提升,而非日益腐敗。