>「減少重複、具有高度的表達力、並及早建立簡單抽象概念,這些對我而言,就是撰寫 Clean Code 的方法」 > [name=Uncle Bob] ## **命名** ## 「如果一個變數名稱還需要註解的輔助,那麼這個名稱就不具備展現意圖的能力」 1. 變數使用可被搜尋的名字 2. 類別和物件用名詞來命名 3. 方法用動詞來命名,且: 1. 取出器 (accessors): 使用 get 當字首 2. 修改器 (mutators): 使用 set 當字首 3. 判定器 (predicates) 使用 is 當字首 4. 每個概念都只使用一個詞 1. 不同類別的存取方法,與其分別取為 "fetch"、"retrieve"、"access",不如統一取作 "get" ## **排版** ## 「程式的編排是很重要的。編排是一種溝通方式,而溝通是專業開發者的首要之務」 1. 垂直空白區隔不同的概念 1. 類似的概念盡可能靠近 (Conceptual Affinity) 2. 相依的函式 (Dependent Functions) 盡可能靠近 3. 每一小段 Code 代表一個完整思緒 4. 用空白分隔這些思緒、空白行的後方接續一個新而不同的概念 2. 變數的宣告盡可能靠近使用處 3. 一段好的Code的長度不會用到水平卷軸 4. 善用空白間隔和密度 1. 密度表示功能密切相關的程度 ## **註解** ## 「寫註解的其中一個動機,是因為程式碼寫的太糟糕」 1. 註解無法彌補糟糕的程式碼,能愈少就愈少 2. 不要註解程式碼 3. 善用版控工具,不要用註解寫日誌 ## **函式** ## 「函式應該要能做某件事,或能回答某個問題,但兩者不該同時發生」 1. 函式的參數數量至多用到 3 個 2. 一個函式應該要避免過度複雜 --- ## **參考:** ## [SQL樣式指南](https://www.sqlstyle.guide/zh-tw/) [成為乾淨的開發者吧! Clean Code, Clean Coder, Clean Architecture 導讀之旅](https://ithelp.ithome.com.tw/users/20138643/ironman/3923)