Feathers:coding-conventions

来自Starling中文站
跳转到: 导航, 搜索

原文地址:http://wiki.starling-framework.org/feathers/coding-conventions

目录

Feathers 贡献者编程规范

本文档目前给出一个概要的说明,以后可能会增加更多内容。写到这里时,Feathers的源码并没有完全地遵从如下所述的规则。当Feathers日趋稳定时,将会朝这个方向努力。为了保持较快的开发进程,并没有那么严格地遵从该规范。而本项目外部的贡献者却可能持有一个更高的标准。

下面所用的publicprivate具有其原本的含义。当指定publicprivate访问控制符,将具有明确的含义。当没有访问控制符指定时,public所修饰的API暴露给该类的使用者。这也包含可以在派生类中访问的public成员和protected成员的情形。同样,private所修饰的方法仅仅在内部生效。内部API可能是protected访问控制的一部分,但是使用这些API将要自行承担风险。

空格
  • 使用空格,而不是Tab;
  • 在这些二元操作符两边逗留空格: +, -, *, /, ?, :, <, >, ==, 等等;
  • 在这些关键字后边紧跟左括弧: if/for/while/等等——而不在中间留空格;
  • 方法之间应该留一个空行。
超长行
  • 保持每行字符数<=80。如果一条语句超过80字符,则应该在超过80之前打断,放到新的一行,并且对这些打断的行进行缩进排版,以保持代码整洁。
  • 判断条件复杂的if语句应当用括弧清楚表明运算优先级并进行适当的断行,以保持可读性。另外把其中某些部分整合为变量体现可能会更显优雅。
花括号
  • 所有的左花括弧{都应当新起一行,并且所有花括弧不应当放到行尾;
  • 所有的if/for/while和其他结构的语句体都要确保使用花括号——即便语法上允许单行语句体可以省略花括号也要这样做!
命名
  • 命名应当具有自注释性并保持清晰,极端简化是很不推荐的;
  • 如果某个API跟Apache Flex或Adobe的fl.*某个组件作用类似的话,那么建议在Feathers中就使用相同的名称;
  • 命名应当少用缩写,但普遍公认的首字母缩写词通常是可以接受的——这种情况需要保持每个字母的大写;
  • 类命名使用驼峰命名法,就像这样:CamelCaseNames,并且必须用大写字母起头;
  • 变量和函数名也使用驼峰命名法,类似:camelCaseNames,并且必须用小写字母起头;
  • 无论怎样,私有成员变量应当以一个下划线_起头。
访问权限控制
  • 通常,属性和方法应该是publicprotected。使用private是不建议的因为这样限制了开发者扩展组件功能。
  • 自定义名称空间强烈不推荐使用!
类结构整理

一般来说,类内部的定义应该组织如下:

 - 静态 变量
 - 静态 函数
 - 构造函数
 - 成员变量及其属性
 - public成员函数
 - protected成员函数
 - private成员函数

组织类的补充说明

  • 共有的 getters 和 setters 应该紧跟在它们所暴露的似有变量后边。
  • 通常,在同一种访问控制的方法定义区间(比如publicprotected), 应当首先是覆盖方法,然后是本类的新方法,再后边是事件侦听处理函数。假如既有事件侦听处理函数,也有信号侦听处理函数的话,信号侦听处理函数应该放在事件侦听处理函数前边。
  • 类似地,静态方法应当跟成员方法按同样的顺序布局。
this关键字

this关键字应该用于引用成员变量和函数。作者特别认真地贯彻这一原则,当你浏览Feathers源码时将会注意到这一点!

文档
  • 所有的公有API都需要加ASDoc 注释
  • 标记私有函数为@private以使其在ASDoc生成文档时被忽略。如果需要,它们仍可以包含一个说明,但这仅仅在源码中能看到;
  • 在你的说明种,当指向特定的类、变量、属性或方法时要使用标签;
  • 当你指向其他公用API或类时,考虑添加一个@see标签;
  • 当指向某种度量值(比如尺寸或时间)时,//必须//带上单位,比如像素或秒。

翻译者:王建文

个人工具
名字空间

变换
操作
导航
Starling中文资料
Starling原创教程
论坛
友链
工具箱