Dojo Style Javascript 编程规范
作者:feelinglucky 来源:google 发布时间:2007-10-25 17:24:00
前言
相当不错的 Javascript 编程风格规范,建议大家采用此规范编写 Javascript。原文链接: http://dojotoolkit.org/developer/StyleGuide 。
翻译(Translated by):feelinglucky{at}gmail.com,转载请注明出处、作者和翻译者,谢谢配合。
来源地址: http://code.google.com/p/grace/wiki/DojoStyle 。
序
Any violation to this guide is allowed if it enhances readability.
所有的代码都要变成可供他人容易阅读的。
快读参考
核心 API 请使用下面的风格:
结构 | 规则 | 注释 |
模块 | 小写 | 不要使用多重语义(Never multiple words) |
类 | 骆驼 | |
公有方法 | 混合 | 其他的外部调用也可以使用 lower_case(),这样的风格 |
公有变量 | 混合 | |
常量 | 骆驼 或 大写 |
下面的虽然不是必要的,但建议使用:
结构 | 规则 |
私有方法 | 混合,例子:_mixedCase |
私有变量 | 混合,例子:_mixedCase |
方法(method)参数 | 混合,例子:_mixedCase, mixedCase |
本地(local)变量 | 混合,例子:_mixedCase, mixedCase |
命名规范
变量名称 必须为 小写字母。
类的命名使用骆驼命名规则,例如: Account, EventHandler
常量 必须 在对象(类)或者枚举变量的前部声明。枚举变量的命名必须要有实际的意义,并且其成员 必须 使用骆驼命名规则或使用大写: var NodeTypes = {
Element : 1,
DOCUMENT: 2
}简写单词 不能使用 大写名称作为变量名: getInnerHtml(), getXml(), XmlDocument
方法的命令 必须 为动词或者是动词短语: obj.getSomeValue()
公有类的命名 必须 使用混合名称(mixedCase)命名。
CSS 变量的命名 必须 使用其对应的相同的公共类变量。
私有类的变量属性成员 必须 使用混合名称(mixedCase)命名,并前面下下划线(_)。例如: var MyClass = function(){
var _buffer;
this.doSomething = function(){
};
}变量如果设置为私有,则前面 必须 添加下划线。 this._somePrivateVariable = statement;
通用的变量 必须 使用与其名字一致的类型名称: setTopic(topic) // 变量 topic 为 Topic 类型的变量
所有的变量名 必须 使用英文名称。
变量如有较广的作用域(large scope),必须使用全局变量;此时可以设计成一个类的成员。相对的如作用域较小或为私有变量则使用简洁的单词命名。
如果变量有其隐含的返回值,则避免使用其相似的方法: getHandler(); // 避免使用 getEventHandler()
公有变量必须清楚的表达其自身的属性,避免字义含糊不清,例如: MouseEventHandler,而非 MseEvtHdlr。
请再次注意这条规定,这样做得的好处是非常明显的。它能明确的表达表达式所定义的含义。例如: dojo.events.mouse.Handler // 而非 dojo.events.mouse.MouseEventHandler
类/构造函数 可以使用 扩展其基类的名称命名,这样可以正确、迅速的找到其基类的名称: EventHandler
UIEventHandler
MouseEventHandler基类可以在明确描述其属性的前提下,缩减其命名: MouseEventHandler as opposed to MouseUIEventHandler.
特殊命名规范
术语 "get/set" 不要和一个字段相连,除非它被定义为私有变量。
前面加 "is" 的变量名 应该 为布尔值,同理可以为 "has", "can" 或者 "should"。
术语 "compute" 作为变量名应为已经计算完成的变量。
术语 "find" 作为变量名应为已经查找完成的变量。
术语 "initialize" 或者 "init" 作为变量名应为已经实例化(初始化)完成的类或者其他类型的变量。
UI (用户界面)控制变量应在名称后加控制类型,例如: leftComboBox, TopScrollPane。
复数必须有其公共的名称约定(原文:Plural form MUST be used to name collections)。
带有 "num" 或者 "count" 开头的变量名约定为数字(对象)。
重复变量建议使用 "i", "j", "k" (依次类推)等名称的变量。
补充用语必须使用补充词,例如: get/set, add/remove, create/destroy, start/stop, insert/delete, begin/end, etc.
能缩写的名称尽量使用缩写。
避免产生歧义的布尔变量名称,例如: isNotError, isNotFound 为非法
错误类建议在变量名称后加上 "Exception" 或者 "Error"。
方法如果返回一个类,则应该在名称上说明返回什么;如果是一个过程,则应该说明做了什么。
猜你喜欢
- Firefox 2.0 在对 XML 的支持方面有几个重要的改进。目前它的用户部署如日中天。了解 Firefox 2.0 XML 特性的改进
- 重读LukeW的《Web Form Design:Filling in the Blanks》感触很深,除佩服LukeW的钻研精神外,更多的
- Sun公司和Zmanda在3月18号声称他们正在一起合作,为MySQL Enterprise用户交付一种全面、全局数据备份与恢复解决方案。现
- 跨浏览器的本地存储(一):userData behaviorDOM Storage,是基于 Web Applications 1.0 spe
- 说到网络产品,离不开的话题就是用户,就像传统行业的消费者。人是复杂的,网民的用户行为更加复杂,用户和用户是不一样的,或者说,每个用户都不一样
- 本篇没有考虑异步,多线程及SQL注入WebDatabase 规范中说这份规范不再维护了,原因是同质化(几乎实现者都选择了Sqlite),且不
- 一、前言:当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,
- 目前网络上有许多图片验证码形式,那些没有生成图片的验证码的抗破解防御能力简直不堪一击;有人直接在网页源码里显示出具体的数字,然后要求访问者输
- 由于Access数据库是一种文件型数据库,所以无法跨服务器进行访问。下面我们来介绍一下如何利用SQL Server 的链接服务器,把地理上分
- IE的for...in循环存在严重的缺陷,除了性能低下外,有许多属性不可遍历,著名有这三兄弟:constructor ,toString ,
- 许可和分发权限Access 2003 Developer Extensions随附的许可协议简化了解决方案或代码段的分发过程。这些协议包括免
- 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81-
- 用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如你想要在
- 有时一些网页对源码进行了加密,我们很难找到类似像“onselectstart="return false"”这样的代码,
- Blog的全名应该是Web log,中文意思是“网络日志”,后来缩写为Blog,而博客(Blogger)就是写Blog的人。从理解上讲,博客
- 代码如下:<% class MyClass Dim var '公共变量必须使
- 在页面中自定义了changejs函数后页面提示错误:Active Server Pages 错误 'ASP 0138' 嵌套
- 合理地扩大页面链接响应区域可以提高网页的易用性。同时还要兼顾到链接的交互一致性以及视觉上的平衡,就需要做一些特殊的处理。实例一:一张图配一个
- 本文介绍了在js和asp中使用FileSystemObject(fso)来: 创建、添加或删除数据,以及读取文件; 移动、复制和删除文件;创
- 1 。打开您的Microsoft Visual Basic:点击确定,以下就按照蓝色的数字步骤.2 。修改工程名和类模块的名称: