1. 程式人生 > >《程式碼整潔之道》學習小結(一)

《程式碼整潔之道》學習小結(一)

第一章 整潔程式碼

勒布朗(LeBlanc)法則:稍後等於永不(Later equal never)。要在工作中體現自己的專業性,尤其是和產品或需求方交談時。

程式碼邏輯直截了當,儘量減少依賴關係,完善錯誤處理程式碼,效能調整最優。要在意自己的程式碼。

能通過所有測試,沒有重複程式碼,體現設計理念,包括儘量少的實體(類、方法、函式等)。消除重複(封裝重複程式碼,抽象為類或者方法,具體實現的功能)和提高表達力(使得變數命名更加清晰,不會包含太多業務),要了解真正要實現的功能。

第二章 有意義的命名

名副其實:瞭解變數的功能,存在的意義,例如elapsedTimeInDays,daySinceCreation等,而不是單純的一個變數a,b之類,不需要註釋就能理解,不要使用模糊的命名。

避免誤導:避免留下誤讀的錯誤線索,另外有特殊意義的詞語使用要謹慎,例如List,若非List變數儘量避免,避免使用差異較小的變數名稱。

做有意義的區分:若是名稱必須相異,那麼意思也應該不同,避免誤導。讀者能夠清晰瞭解變數的意義。
使用讀得出的名稱:使用恰當的英語詞,而不是隨意取名。

使用可搜尋的名稱:能表達作者意圖,而不是普通字母或者數字。

避免使用編碼:避免使用作用域或者變數型別來命名。例如介面IShapeFactory並不實用,因為都瞭解是一個介面,不如寫成ShapeFactoryImp。同時也避免無意義的字首等。

避免思維對映:避免單字母變數名,尤其是迴圈計數器型別變數。

類名:類名或者物件名應該是名詞或者名詞短語,避免動詞。

方法名:方法名應該是動詞或者動詞短語,屬性訪問器、修改器和斷言根據其值命名,根據JavaBean標準依次在前面加上get、set和is。過載構造器使用描述了引數的靜態工廠方法名,可以將相應的構造器設定為private。

別扮可愛:不要使用通俗語言或者俚語來命名。

每個概念對應一個詞:給每個抽象概念選一個詞,並且一以貫之,例如使用fetch、get和retrieve給類中同等類別來命名。

別用雙關語:避免將同一單詞用於不同目的,遵循一詞一義,例如若是通過增加或者連線兩個現存值獲取新值,應該使用insert或者append,而不是使用add。

使用解決方案領域名稱:只有程式設計師會讀你的程式碼,可使用專業術語來輔助理解。

使用源自所涉問題領域的名稱:對應領域的專有詞語。

新增有意義的語境:需要用有良好命名的類、函式或者名稱空間來放置名稱,提供語境,若是沒有,只能新增字首說明。

不要新增沒用的語境:不要全部都新增相同語境的類名稱,精確命名。