編碼規範之命名

1.命名
命名是一個看似簡單卻值得深究的一個過程。變量、函數、文件等等命名有一些內在的要求:見名知義。一個好的名字可讓人一眼就知道它是作什麼的,它每每是一個事物的高度歸納。若是一個名字取得很差,那麼可能會其餘人帶來閱讀上的困難,甚至引發歧義。變量名和文件名通常採用名詞,而函數名通常採用動賓結構。
 
1.1文件命名
文件命名通常建議採用名詞,用大駝峯法。一個文件通常表明着一個類或模塊,首先你須要對整個類或模塊的定位有一個清晰的瞭解,才能給它取出一個恰當的名字。對於類而言,你須要明確它具備那些屬性和行爲;對於模塊而言,你須要明確它爲了解決什麼問題而產生,起到什麼做用。
文件開頭通常都須要加註釋,寫清楚做者和編碼時間以及功能說明。
例如:
文件名:ForceDirectedLayout
/**
* Created by zhongzh on 2017/6/19.
*力導向佈局
*/
 
1.2變量命名
變量命名通常建議採用類型前綴+有意義的單詞組成,用小駝峯法。
局部變量:
s:表示字符串。例如:sName,sHtml;
n:表示數字。例如:nPage,nTotal;
b:表示邏輯。例如:bChecked,bHasLogin;
a:表示數組。例如:aList,aGroup;
r:表示正則表達式。例如:rDomain,rEmail;
fn:表示函數。例如:fnGetHtml,fnInit,fnGetName,fnSetAge;
f :表示文件。例如:fInput;
o:表示以上未涉及到的其餘對象,例如:oButton,oDate;
g:表示全局變量,例如:gUserName,gLoginTime;
$:表示Jquery對象。例如:$Content,$Module;這是一種比較普遍的Jquery對象變量命名規範。
dom:表示Dom對象,例如:domForm,domInput;
臨時變量(做用域小):str,num,bol,obj,fun,arr,cnt等等
循環變量:i,j,k
 
1.3函數命名
一個好的函數名通常能經過名字直接獲知該函數實現什麼樣的功能。首先,若是你沒法對這個函數給出一個合適的名字,說明你對這段代碼將要實現的功能理解還不到位,或者說你對需求的理解還不夠充分。其次,若是你的函數名不能正確地反映函數功能,那麼你可能就嗅到了「壞代碼的味道」(參考《重構》),可能意味着這個函數過大,須要細化爲耦合性更小、功能更加獨立的幾個函數。
函數命名通常建議統一使用動詞或者動詞+名詞的形式:init(),getName()
涉及到布爾邏輯值的函數建議採用is,has,contains代替動詞開頭:isObject(),hasClass(),containsElements()
常見的一些動詞,能夠借鑑和參考:
get 獲取/set 設置,        add 增長/remove 刪除
create 建立/destory 移除        start 啓動/stop 中止
open 打開/close 關閉,        read 讀取/write 寫入
load 載入/save 保存,        create 建立/destroy 銷燬
begin 開始/end 結束,        backup 備份/restore 恢復
import 導入/export 導出,        split 分割/merge 合併
inject 注入/extract 提取,        attach 附着/detach 脫離
bind 綁定/separate 分離,        view 查看/browse 瀏覽
edit 編輯/modify 修改,        select 選取/mark 標記
copy 複製/paste 粘貼,        undo 撤銷/redo 重作
insert 插入/delete 移除,        add 加入/append 添加
clean 清理/clear 清除,        index 索引/sort 排序
find 查找/search 搜索,        increase 增長/decrease 減小
play 播放/pause 暫停,        launch 啓動/run 運行
compile 編譯/execute 執行,        debug 調試/trace 跟蹤
observe 觀察/listen 監聽,        build 構建/publish 發佈
input 輸入/output 輸出,        encode 編碼/decode 解碼
encrypt 加密/decrypt 解密,        compress 壓縮/decompress 解壓縮
pack 打包/unpack 解包,        parse 解析/emit 生成
connect 鏈接/disconnect 斷開,        send 發送/receive 接收
download 下載/upload 上傳,        refresh 刷新/synchronize 同步
update 更新/revert 復原,        lock 鎖定/unlock 解鎖
check out 簽出/check in 簽入,        submit 提交/commit 交付
push 推/pull 拉,        expand 展開/collapse 摺疊
begin 起始/end 結束,        start 開始/finish 完成
enter 進入/exit 退出,        abort 放棄/quit 離開
obsolete 廢棄/depreciate 廢舊,        collect 收集/aggregate 彙集
相關文章
相關標籤/搜索