軟體開發實務指南 (2) — 變數名稱命名
Published in
May 16, 2021
這是一篇分享計畫,預計 1 -2 週新增一篇,來將這本號稱聖經的軟體開發實務指南心法分享給大家。歡迎點擊 code complete reading
tag 來查看文章系列~
最重要考慮項目
- 命名完全又準確,目前日期,使用『 current date 』,而不是『 date 』
- 問題為導向,而不是計算方法。employeeData 比 inputRec 更好
- 變數長度,限定 10 -16 個字元內
- 考慮作用域,短變數意旨短使用區間 ; 長變數常用在全域變數
- 全域變數可用 namespace 切割,例如
UserInterFace::Employee
vsDatabaseInterface::Employee
- 計算值修飾詞 ( Total, Sum, Average, Max, Min ) 應放在最後方,例如 revenueTotal 好於 totalRevenue,前者要放入真正有意義的詞
為特定型別的資料命名
- 為迴圈索引 key 值命名,避免 i, j 的命名方式
- 為狀態變數命名,避免用 flag 作為名稱
- 並沒有臨時變數這種意義,要替臨時變數 temp 做命名
- 布林變數,found > isFound,跟可讀性有關,且避免否定命名法( isNotFound )
- 列舉和常數命名也要注意精準度,避免 FIVE = 6.0 這種
建立命名規則好處
- 做全域決策而不是局部決策
- 專案間傳遞知識更容易
- 更快速學習程式碼
- 避免命名增生,同意義不同名稱
非正式命名規則
- 可以設定自己的命名規則,例如 g_ 前綴為全域變數,m_ 前綴為成員變數, const_ 前綴代表不可修改的變數
- 使用各程式語言風格自己的命名規則
縮寫注意事項
- 不要從每個單字刪除一個字母來縮寫
- 要一致,不要一下 No, 一下 Num
- 要能用嘴巴念出來
應該避免的名稱
- 避免使用令人誤解的名稱
- 避免使用具有相似含義的名稱,例如 input 和 inputValue
- 避免使用具有不同含義卻相似名稱的變數,例如 clientRecs 和 clientReps
- 避免用數字命名
- 避免發音相近的命名,例如 wrap 和 rap
- 不要拼錯字