[閱讀] The Clean Code 無瑕的程式碼

The Clean Code 這本書中講述了軟體開發中的重要環節 – 程式撰寫所需具備的一些經驗法則,包含了可讀性、邏輯、意外處理和日後維護協作。每一個章節都可以獨立來看,讀者可以針對自己目前所遇上的瓶頸來找尋原則或是解法。程式寫作本身就是個長期學習和精鍊的過程,藉由這本書,可以少走一些冤枉路,提前獲得一些經驗傳授,我覺得是很值得的。
the-clean-code

書籍資料

書籍名稱:The Clean Code 無瑕的程式碼
作者:Robert C. Martin
ISBN:9789862017050
博客來推薦連結:https://tinyurl.com/ycvs72vh

1. 第一印象的主觀想法

這本書的寫作風格意料之外的簡單好懂。縱使書中主要示範語言是以 Java 為主,跟我所學的 JavaScript 有一些根本上的差異 (像是沒有 Class 的概念)。不過藉由書中淺白的說明和範例,有開始了解到「當每個你看到的程式,執行結果都與你想的差不多」,那麼就是在 Clean Code 的道路之上了。

2. 認同之處

Chapter 1 – 無暇的程式碼
急於將產品上市,反倒會讓程式碼變得一團糟。隨著新功能的加入,那麼程式碼將會越來越難以維護。換言之,寫出雜亂的程式碼,產能就會開始下降。爛程式不會讓你趕上開發日期,只會讓你整體的開發速度變慢。每一個函式、類別、模組都能表達單一的意圖,不被其他變數細節干擾,且具有可讀性
Chapter 2 – 有意義的命名
變數、函式的名稱,要能解答大部分的問題。它應該要告訴你為何在此、要怎麼使用
要產生有意義的區別,且使用可以被念出來、可被搜尋的名字
類別的名字 – 用名詞或是名詞片語,而動詞是給方法用的。因為同義字的情況是有的(像是 get, fetch, retrieve),所以一種概念就只使用一種字詞,以免誤導
Chapter 3 – 函式
函式要儘可能的簡短,且有區塊和縮排
一個函式只做一件事,且要把這件事做好。換言之,這個函式必須要沒有副作用,不會偷偷進行、觸發其他函式。
別害怕去取較長的名稱。一個較長但具描述性質的名稱,比短且難以理解的名稱還要好
使用例外處理錯誤。別忘記錯誤也是一件事。
不要重複寫同樣的東西。當你有發現的時候,就得將其提取出來,這樣也方便日後維護。
Chapter 4 – 註解
註解是一種必要之惡,不要替糟糕的程式碼寫著註解。
試著用程式碼表達你的本意,不準確的註解比沒有註解更糟糕。
被註解起來的程式碼,沒有用到就刪除吧。你可以使用版本控制來找回它們。
Chapter 5 – 編排
程式的編排,是一種溝通方式,這包含了縮排和空行。
變數的宣告,要儘可能的靠近變數被使用的地方。
Chapter 6 – 物件與資料結構
讓變數保持私有,只暴露該讓他人使用的部份就好,以免其他函式的操作,造成無形中的改動。
使用物件導向感到困難的事物,用結構化卻比較容易,反之亦然。
Chapter 7 – 錯誤處理
錯誤處理很重要,不過不能模糊原本程式碼的邏輯。
Try-catch,意指在 try 中出現錯誤時,會中斷改到 catch 中繼續進行。
儘可能不要回傳 null 或是傳遞 null,除非 API 有預期有 null 的產生。
Chapter 8 – 邊界
藉由第三方軟體的程式碼,整合進自己的專案,並從中學習其架構
Chapter 9 – 單元測試
測試程式和產品程式一樣重要,它本身的可讀性也很重要。
一個測試只能有一個概念,儘可能的最小化斷言(expect)的數量。

3. 總結

誠如開始所提,在撰寫程式階段的不同等級的工程師,都可以從這本書中得到不同程度的啟發。它有著可以放於案頭,隨時翻閱的潛力。畢竟概念上的傳遞,並沒有語言的限制。
按讚加入粉絲團

延伸閱讀