前言
相當不錯的 Javascript 編程風格規範,建議大家採用此規範編寫 Javascript。原文連結:http://dojotoolkit.org/developer/StyleGuide 。
翻譯(Translated by):i.feelinglucky{at}gmail.com from http://www.gracecode.com ,轉載請註明出處、作者和翻譯者,謝謝配合。
本文地址:http://code.google.com/p/grace/wiki/DojoStyle 。
序
Any violation to this guide is allowed if it enhances readability.
所有的代碼都要變成可供他人容易閱讀的。
快讀參考
核心 API 請使用下面的風格:
結構 |
規則 |
注釋 |
模組 |
小寫 |
不要使用多重語義(Never multiple words) |
類 |
駱駝 |
|
公有方法 |
混合 |
其他的外部調用也可以使用 lower_case(),這樣的風格 |
公有變數 |
混合 |
|
常量 |
駱駝 或 大寫 |
下面的雖然不是必要的,但建議使用:
結構 |
規則 |
私人方法 |
混合,例子:_mixedCase |
私人變數 |
混合,例子:_mixedCase |
方法(method)參數 |
混合,例子:_mixedCase, mixedCase |
本地(local)變數 |
混合,例子:_mixedCase, mixedCase |
命名規範
變數名稱 必須為 小寫字母。
類的命名使用駱駝命名規則,例如:
Account, EventHandler
常量 必須 在對象(類)或者枚舉變數的前部聲明。枚舉變數的命名必須要有實際的意義,並且其成員 必須 使用駱駝命名規則或使用大寫:
var NodeTypes = {
Element : 1,
DOCUMENT: 2
}
簡寫單詞 不能使用 大寫名稱作為變數名:
getInnerHtml(), getXml(), XmlDocument
方法的命令 必須 為動詞或者是動詞短語:
obj.getSomeValue()
公有類的命名 必須 使用混合名稱(mixedCase)命名。
CSS 變數的命名 必須 使用其對應的相同的公用類變數。
私人類的變數屬性成員 必須 使用混合名稱(mixedCase)命名,並前面下底線(_)。例如:
var MyClass = function(){
var _buffer;
this.doSomething = function(){
};
}
變數如果設定為私人,則前面 必須 添加底線。
this._somePrivateVariable = statement;
通用的變數 必須 使用與其名字一致的類型名稱:
setTopic(topic) // 變數 topic 為 Topic 類型的變數
所有的變數名 必須 使用英文名稱。
變數如有較廣的範圍(large scope),必須使用全域變數;此時可以設計成一個類的成員。相對的如範圍較小或為私人變數則使用簡潔的單詞命名。
如果變數有其隱含的傳回值,則避免使用其相似的方法:
getHandler(); // 避免使用 getEventHandler()
公有變數必須清楚的表達其自身的屬性,避免字義含糊不清,例如:
MouseEventHandler,而非 MseEvtHdlr
請再次注意這條規定,這樣做得的好處是非常明顯的。它能明確的表達運算式所定義的含義。例如:
dojo.events.mouse.Handler // 而非 dojo.events.mouse.MouseEventHandler
類/建構函式 可以使用 擴充其基類的名稱命名,這樣可以正確、迅速的找到其基類的名稱:
EventHandler
UIEventHandler
MouseEventHandler
基類可以在明確描述其屬性的前提下,縮減其命名:
MouseEventHandler as opposed to MouseUIEventHandler.