AS3編碼規范
[注]看了下面的AS3編碼規范,覺得寫得蠻細蠻全的,故在此轉載。在多人協作的時候,這個尤為重要。
AS3編碼規范
原文地址:http://artlee.biz/572
AS3編碼規范
2010年3月10日 Artlee 版本v1
作者根據自己多年的Flash項目開發及管理經驗,吸取駝峰命名法與匈牙利命名法的長處,結合MVCS開發模式,融入面向對象的開發思想,并且考慮到業界已有的不成文的約定,兼顧Flash開發以及Flex開發的便利性,草擬了這份AS3編碼經驗。請各位大師多多指教。
一,基本原則
- 約定大于配置,約定大于規范
- 規范思想,并非為束縛手腳
- 在無歧義的前提下,命名力求簡潔
- 在語義明了的前提下,命名力求省力,如果可以同時不按shift,則不按
- 命名=表義詞語+類型,名稱表義為先
- 堅持使用強類型
- 把常用的成員,放在容易找到的地方,給予它們更大的訪問權限
- 源碼格式以清晰易讀為準
- 寫注釋優先極大于寫代碼
二,一般規則
- 文件組織結構與包(在MVCS開發模式下)
范式:(companyDomain|teamName).projectName
+controllers 控制器目錄
+events 事件目錄
+managers 管理器目錄
+models 數據模型目錄
+models.vos VO對象目錄
+services 數據服務目錄
+views 視圖目錄
+views.uis UI目錄
+utils 工具類目錄
+Module_{Name}.as 模塊類(IFacade)
說明:|表示或者,兩者取其一
詞性:名詞
命名:駝峰命名法,第一個單詞首字母小寫,第二個單詞首字母大宇,因形似駝峰而得名 - 類與類文件
范式:SealedName[Type]
說明:若無歧義,[]之內可略去,以下同
如PopUpManager、MouseEvent、StringUtil、FishController等
在MVC開發模式下,如果去掉Type,在項目中則可能出現同名文件,雖然完全限定名不同,但同時在同一個類中被引入時,會給編碼帶來不便。在這種情況下,保留Type更為合理。
詞性:名詞
命名:大駝峰命名法(首單詞首字母大寫) - 接口
范式:ISealedName[Type]
說明:接口與類相比,不同之處僅在于附有前綴I
詞性:字母I+名詞
命名:大駝峰命名法(首單詞首字母大寫) - 常量
范式:CONST_VARIABLE_NAME = “constVariableName”
命名:常量名稱單詞大宇,間以下劃線,常量值使用駝峰命名法
詞性:名詞、動名詞等
用途:在事件類中定義事件類型,在枚舉類中定義枚舉值等 - 實例變量、參數變量、函數變量與類靜態變量
范式:variableName
命名:駝峰命名法 - 函數
范式:[varName_]getMethodName(argName1 :String…)
命名:駝峰命名法
詞性:動詞、動名詞 - 命名空間
范式:lib_internal
命名:小寫字母單詞,間以下劃線
詞性:名詞+形容詞 - 類成員的位置
成員優先級從高到低:常量,靜態變量,靜態函數,構造器,實例變量,getter/setter屬性存取器,函數
同級別的成員按訪問修飾符排序:public,internal,protected,private
三,具體細則
- 在參數變量、函數變量中常用的縮寫
c : Controller(或ctrl)
m: Model
v:View
e : Event or Error
mdl: Module
ui: UI
srv: Service
btn:Button
mc:MovieClip
spt:Sprite - 在MVCS開發模式下,常用的Type后綴
視圖:View
視圖接口:IView
控制器:Controller
數據模型:Model
數據對象:VO
UI:UI
管理器:Manager
事件集:Events
事件:Event
常量:s
數據服務:Service
工具類:Util
模塊:Module - 事件句柄函數命名舉例
onClick(e :MouseEvent) :void
btnClose_onClick(e:MouseEvent) :void
mouseEventHandler(e :MouseEvent) :void
mcName_mouseEventHandler(e :MouseEvent) :void - 顏色變量使用uint
- 時間變量使用Number
- switch多在事件句柄函數中使用
- 優先使用Vector,在聲明數組Array時,標明它的元素類型,如fishs : Array /* Element Of Fish */
- 避免使用try..catch
- 在for循環中,使用j、k、m、n作為循環數字
- 不要聲明沒有類型的變量,不要使用*使用類型修飾符,避免返回類型為Object的對象
- 不用使用Object作為HashMap,使用Dictionary代替
- 基本棄用private,默認非公開的實例變量與實例函數使用protected訪問修飾符
- 在VO類中,默認所有變量使用基元類型作為類型修飾符,使用public作為訪問修飾符
- 基本棄用getter/setter,在一般情況下,不使用public的getter/setter存取器,代替以public getMethod/setMethod。
- 把花括號放在同一列,如:
public getMehtod() : void
{
} - 在類、函數上使用ASDoc注釋,如:
/**
* comment
*/ - 不使用下劃線作為變量前綴。
- 以Flash制作資源文件時:
元件成員分層放置,每層須有名稱
庫元件分目錄放置,以類別組織文件夾
元件的實例名稱使用駝峰命名法,命名規則與實例變量同
元件的導出名稱與所要綁定的類名一致
Label與AS均單獨放在一層里,置于最上面
避免使用mask
盡量不要使用濾鏡 - 控制顯示對象的位置時,避免使用小數
- 修改fla文件之前要簽出、鎖定,再修改。
- 使用空白字符使代碼明晰易讀,如:
在單詞、符號之間使用空格
在函數、變量之間使用空行
在包、類、函數、匿名函數各級別間使用縮進
如果參數列表過長,或數組元素很多,可以拆行,使用相同縮進 - 在導入類時,避免使用*號
- 約定在注釋中添加fixed標簽的類或函數,不要隨意更改
- 函數變量在函數頂部統一聲明,在事件函數內部移除事件監聽統一放在最上面
posted on 2011-06-03 11:20 gembin 閱讀(1090) 評論(0) 編輯 收藏 所屬分類: ActionScript3