命名 - fantasy0107/notes GitHub Wiki
請益 程式的命名與coding style討論
Re: 討論 註解 用中文還是英文
開發類別庫的設計方針
google javaguide
A pair of helping hands when naming things
工具或網站
clean code
- 名字代表意思
- 避免因為名字曲解原意
- 名字有意義上的區別
- 可以唸出來的名字
- 可以被搜尋的名字
- 避免編碼 - 匈牙利/字首
- 類別命名 - 名詞片語
- 方法命名 - 動詞片語
- 每種概念使用一個字詞
- 使用解決方案領域的命名 > 問題領域的命名
動詞
- create - 建立一筆
- insert - 建立多筆
- find - 找出一筆
- get - 找出多筆
- delete - 刪除一筆
- destroy - 刪除多筆
get/set
create
- insert
- append
- add
edit
- modify
- update
complete
- finish
- done
- end
send
- deliver
- dispatch
- announce
- distribute
- route
find
- search
- extract
- locate
- recover
start
- launch
- create
- begin
- open
make
- create
- set
- up
- build
- genernate
- compose
- add
- new
Boolean變數或function的命名方式
- is
- can
- has
- should
用介系詞(of,for,from,on…)來組變數名稱
var daysSinceModification = 3; // 在修改已過了3天
var workDaysPerWeek = 5; // 每週工作5天
var daysUntilDeadline = 10; // deadline前還剩10天
使用更具體的單位
delayedTime -> delayedSeconds (如果單位是秒數)
捨棄i,j,k,使用更好的Iterator
parent, children, toy
Function Name的prefix都是動詞
縮寫真的方便但並不是最好
使用像是dns,url這些眾所皆知的詞沒問題,只有自己團隊才看得懂的縮寫,除非必要,不然盡量避免使用
如何寫註解
在檔案的最前頭寫上整個程式檔案大致是如何運作的檔案註解
除了解釋程式運作的原理外,還可以描述為什麼要用這樣子的寫法來寫, 可能是效能上的需求之類的
使用 TODO FIXME 等註解標籤
- TODO可以標記尚未製作或是需要優化的部分
- FIXME是不能運作需要修復的部分,其實我知道還有HACK, XXX 等標籤
- 不過我覺得好像都歸類在TODO比較方便
- 在設定常數的時候給予註解其實也能幫助理解,讓開發者更有概念
封裝條件
將過長的判斷條件封裝成 method