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