gembin

OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

HBase, Hadoop, ZooKeeper, Cassandra

Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

About Me

 

AS3编码规范

[注]看了下面的AS3编码规范,觉得写得蛮细蛮全的,故在此转载。在多人协作的时候,这个尤为重要。
AS3编码规范
原文地址:http://artlee.biz/572

AS3编码规范

2010年3月10日 Artlee 版本v1

作者根据自己多年的Flash项目开发及管理经验,吸取驼峰命名法与匈牙利命名法的长处,结合MVCS开发模式,融入面向对象的开发思想,并且考虑到业界已有的不成文的约定,兼顾Flash开发以及Flex开发的便利性,草拟了这份AS3编码经验。请各位大师多多指教。

一,基本原则

  1. 约定大于配置,约定大于规范
  2. 规范思想,并非为束缚手脚
  3. 在无歧义的前提下,命名力求简洁
  4. 在语义明了的前提下,命名力求省力,如果可以同时不按shift,则不按
  5. 命名=表义词语+类型,名称表义为先
  6. 坚持使用强类型
  7. 把常用的成员,放在容易找到的地方,给予它们更大的访问权限
  8. 源码格式以清晰易读为准
  9. 写注释优先极大于写代码

二,一般规则

  1. 文件组织结构与包(在MVCS开发模式下)
    范式:(companyDomain|teamName).projectName
    +controllers 控制器目录
    +events 事件目录
    +managers 管理器目录
    +models 数据模型目录
    +models.vos VO对象目录
    +services 数据服务目录
    +views 视图目录
    +views.uis UI目录
    +utils 工具类目录
    +Module_{Name}.as 模块类(IFacade)
    说明:|表示或者,两者取其一
    词性:名词
    命名:驼峰命名法,第一个单词首字母小写,第二个单词首字母大宇,因形似驼峰而得名
  2. 类与类文件
    范式:SealedName[Type]
    说明:若无歧义,[]之内可略去,以下同
    如PopUpManager、MouseEvent、StringUtil、FishController等
    在MVC开发模式下,如果去掉Type,在项目中则可能出现同名文件,虽然完全限定名不同,但同时在同一个类中被引入时,会给编码带来不便。在这种情况下,保留Type更为合理。
    词性:名词
    命名:大驼峰命名法(首单词首字母大写)
  3. 接口
    范式:ISealedName[Type]
    说明:接口与类相比,不同之处仅在于附有前缀I
    词性:字母I+名词
    命名:大驼峰命名法(首单词首字母大写)
  4. 常量
    范式:CONST_VARIABLE_NAME = “constVariableName”
    命名:常量名称单词大宇,间以下划线,常量值使用驼峰命名法
    词性:名词、动名词等
    用途:在事件类中定义事件类型,在枚举类中定义枚举值等
  5. 实例变量、参数变量、函数变量与类静态变量
    范式:variableName
    命名:驼峰命名法
  6. 函数
    范式:[varName_]getMethodName(argName1 :String…)
    命名:驼峰命名法
    词性:动词、动名词
  7. 命名空间
    范式:lib_internal
    命名:小写字母单词,间以下划线
    词性:名词+形容词
  8. 类成员的位置
    成员优先级从高到低:常量,静态变量,静态函数,构造器,实例变量,getter/setter属性存取器,函数
    同级别的成员按访问修饰符排序:public,internal,protected,private

三,具体细则

  1. 在参数变量、函数变量中常用的缩写
    c : Controller(或ctrl)
    m: Model
    v:View
    e : Event or Error
    mdl: Module
    ui: UI
    srv: Service
    btn:Button
    mc:MovieClip
    spt:Sprite
  2. 在MVCS开发模式下,常用的Type后缀
    视图:View
    视图接口:IView
    控制器:Controller
    数据模型:Model
    数据对象:VO
    UI:UI
    管理器:Manager
    事件集:Events
    事件:Event
    常量:s
    数据服务:Service
    工具类:Util
    模块:Module
  3. 事件句柄函数命名举例
    onClick(e :MouseEvent) :void
    btnClose_onClick(e:MouseEvent) :void
    mouseEventHandler(e :MouseEvent) :void
    mcName_mouseEventHandler(e :MouseEvent) :void
  4. 颜色变量使用uint
  5. 时间变量使用Number
  6. switch多在事件句柄函数中使用
  7. 优先使用Vector,在声明数组Array时,标明它的元素类型,如fishs : Array /* Element Of Fish */
  8. 避免使用try..catch
  9. 在for循环中,使用j、k、m、n作为循环数字
  10. 不要声明没有类型的变量,不要使用*使用类型修饰符,避免返回类型为Object的对象
  11. 不用使用Object作为HashMap,使用Dictionary代替
  12. 基本弃用private,默认非公开的实例变量与实例函数使用protected访问修饰符
  13. 在VO类中,默认所有变量使用基元类型作为类型修饰符,使用public作为访问修饰符
  14. 基本弃用getter/setter,在一般情况下,不使用public的getter/setter存取器,代替以public getMethod/setMethod。
  15. 把花括号放在同一列,如:
    public getMehtod() : void
    {
    }
  16. 在类、函数上使用ASDoc注释,如:
    /**
    * comment
    */
  17. 不使用下划线作为变量前缀。
  18. 以Flash制作资源文件时:
    元件成员分层放置,每层须有名称
    库元件分目录放置,以类别组织文件夹
    元件的实例名称使用驼峰命名法,命名规则与实例变量同
    元件的导出名称与所要绑定的类名一致
    Label与AS均单独放在一层里,置于最上面
    避免使用mask
    尽量不要使用滤镜
  19. 控制显示对象的位置时,避免使用小数
  20. 修改fla文件之前要签出、锁定,再修改。
  21. 使用空白字符使代码明晰易读,如:
    在单词、符号之间使用空格
    在函数、变量之间使用空行
    在包、类、函数、匿名函数各级别间使用缩进
    如果参数列表过长,或数组元素很多,可以拆行,使用相同缩进
  22. 在导入类时,避免使用*号
  23. 约定在注释中添加fixed标签的类或函数,不要随意更改
  24. 函数变量在函数顶部统一声明,在事件函数内部移除事件监听统一放在最上面

posted on 2011-06-03 11:20 gembin 阅读(943) 评论(0)  编辑  收藏 所属分类: ActionScript3


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(6)

随笔分类(440)

随笔档案(378)

文章档案(6)

新闻档案(1)

相册

收藏夹(9)

Adobe

Android

AS3

Blog-Links

Build

Design Pattern

Eclipse

Favorite Links

Flickr

Game Dev

HBase

Identity Management

IT resources

JEE

Language

OpenID

OSGi

SOA

Version Control

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

free counters