转自:http://jsfox.cn/blog/webgame/webgame-actionscript-coding-conventions.html
网页游戏项目大,代码多,必须要有规范。依照惯例和个人喜好,参考了JavaScript和Python的代码风格,草拟了一下编程规范。
代码规范
一、 命名规范
1. 类
1) 首字母大写,采用名词,且能体现其含义。可采用常见的缩略单词。多个单词使用驼峰命名。例如MsgParser,ConnectionManager等。
2) 基类需使用Base、Abstract前缀。接口需使用大写I开头。
2. 方法
1) 首字母小写,采用动词+名字的命名方式,驼峰命名。例如parseMsg(),initUI(),setData()等。
2) 事件响应方法,采用on开头,或handler结尾,如onClick(), clickHandler()。
3. 变量
变量名应能体现其含义,多个单词时,首字母小写,驼峰命名。
1) 变量使用名词,并注意单复数。
2) Boolean类型,加前缀is, can, has等。如isFirstLogin, canAttack。
3) 循环变量使用常用的i, j, k,循环总数使用length,count等常见词汇。
4) 私有变量可使用下划线开头,如_instance。
5) 常量全部大写,多个单词用下划线分隔。
二、 代码书写习惯
1. 文档编码必须使用UTF-8。
2. 逗号、分号、冒号后紧跟空格,左大括号、左括号前增加空格,运算符左右增加空格(函数默认参数、类型定义除外)。禁止多余的空格。
正确:
if (disposed) { return; }
错误:
if(disposed){ return; }
正确:
thingMove(1001, [83, 40], {x: 1, y: 2});
错误:
thingMove( 1001, [ 83, 40 ], { x: 1, y: 2 } );
正确:
x = 1; y = 2; longVariable = 3;
错误:
x = 1; y = 2; longVariable = 3;
正确:
public function dispose(value:int=0):void
错误:
public function dispose(value:int = 0) : void
3. 单行代码不超过80个字符,结尾必须写分号。
4. 使用Tab而不是4个空格缩进。单行过长时,换行缩进需良好对齐。例如:
private function thingMove(thingId:int, pathArr:Array, x:int, y:int, dir:int, isDash:int):void
5. if、else、switch、for、while等语句后面必须有大括号,即使只执行一行。大括号可以写在同一行,也可以换行。function、class后的大括号必须换行。
6. 在适当的地方增加空行,如相关代码块结束时。
7. 如变量名、方法名不能良好体现其含义,则必须写注释。容易误解的代码必须写注释。
8. 字符串使用双引号,需要嵌套时才使用单引号。
项目规范
一、 类的设计
1. 一般类成员变量和方法尽量私有,需外部访问时使用getter/setter。
2. 简单数据模型类如data,vo,变量全部公开。
3. 维护数据模型的单一职责管理类,需使用单例。不维护数据的工具类,命名为*Util,Util命名结尾的类只引入静态方法,禁止创建实例。
4. 功能模块的常量写在*Const里。
5. 当一个类中出现大量方法时,方法书写顺序为:私有方法、公共方法、getters/setters、事件响应方法。
6. 父类中禁止出现对子类的操作。错误:
if (this is subClassInstance) { // do something }
二、 内存使用和性能
1. 需反复创建的对象,必须回收到对象池。
2. 无需一直监听的事件或Mediator,处理后需移除监听。
3. 禁止在某个事件处理方法中做大量运算或显示列表连续操作。
4. 使用FrameTimerManager增加帧循环需找组长报备。
三、 其他
1. 程序中不能出现中文。汉字需写入properties文件中。
2. 注释中不能出现add by, modified by等字样。
3. 禁止使用单词”flag”作为标志变量的名称。