命名的艺术

“计算机科学只存在两个难题:缓存失效和命名。” ——Phil KarIton

前言

命名一直是我编程过程中很头痛的事,有时为了一个恰当的名称是想了又想,还忍不住Google一下。命名真是一门艺术,好的命名那叫一个高大上。今天总结一些前端命名的规范,梳理一份自己的命名想法,从以下4种代码风格的命名规范部分获取灵感:

1. Google JavaScript代码风格指南

2. Crockford代码规范

3. Dojo Javascript 编程规范

4. jQuery核心风格指南

PS:未列出来的,代表没对此种命名做规范。

JavaScript

1. 变量

Google JavaScript代码风格指南 小驼峰命名规则
Dojo Javascript 编程规范 小驼峰命名规则
jQuery核心风格指南 小驼峰命名规则

这里有一点要澄清的事,网上很多Dojo Javascript 编程规范的资料说”变量名称必须为小写字母“,我半天不敢相信,直接找上Dojo官网文档,里面根本就没这么说,而是说是混合大小写(就是小驼峰)。

——所以结论是,变量用”小驼峰命名规则“。

2. 常量

Google JavaScript代码风格指南 大写字母,单词间加下划线,例:var SECONDS_IN_A_MINUTE = 60;
Dojo Javascript 编程规范 大写字母,单词间加下划线 或 大驼峰命名规则

好吧,其实Dojo Javascript 编程规范根本没说”大写字母,单词间加下划线“,只是说了大写字母,我看得不顺眼加的,我就喜欢这种。

——所以结论是,常量用”大写字母,单词间加下划线“。

3. 函数

Google JavaScript代码风格指南 小驼峰命名规则,例:functionNamesLikeThis
Dojo Javascript 编程规范 小驼峰命名规则,必须为动词或者是动词短语。例:obj.getSomeValue()
jQuery核心风格指南 小驼峰命名规则

这一次我非常赞同Dojo Javascript 编程规范命名方式,就必须要是动词或者是动词短语。函数也是方法,叫法不同而已。

——所以结论是,函数名用”小驼峰命名规则,必须为动词或者是动词短语“。

4. 类

Google JavaScript代码风格指南 大驼峰命名规则,例:ClassNamesLikeThis
Dojo Javascript 编程规范 大驼峰命名规则

JavaScript本身没有类这种东西,只不过是模拟出来的,本质还是个函数。不过命名的确是要不同, 另外构造函数命名跟类相同。

——所以结论是,类名用”大驼峰命名规则“。

5. 枚举变量

Google JavaScript代码风格指南 大驼峰命名规则,例:EnumNamesLikeThis
Dojo Javascript 编程规范 大驼峰命名规则

这个没什么争议。

——所以结论是,类名用”大驼峰命名规则“。

CSS

CSS的编写有几个准则:

1. 短ID或类命名,但确保他们不要太过隐晦,或直白(如#blue-button)。

2. 大型项目使用前缀,如#xyz-help, .xyz-column(分模块)。

3. 单词直接间隔使用”-“(NEC规范文档里面就是用”-“)。

    即使是不用,使用其他驼峰式或下划线,那就必须统一风格,别一会用这用那。

自问自答

1. CSS,class或id的单词间隔是使用横杠或者下划线或驼峰式?

我觉得当中选择了一种,那么整个风格就统一成那种, 不要像风像云又像雨,什么都用。我建议是用横杠,看起来舒服一些。

2. 文件名要不要驼峰式,首字母要大写吗?

首先文件名必须简明扼要,别又臭又长。有很多方式:

1. 全部小写,单词间用下划线。例: photo_gallery.js

2. 全部小写,单词间用横杠。例: photo-gallery.js

3. 全部小写,单词间不使用任何字符分割。例: photogallery.js

4. 小驼峰式。例: photoGallery.js

这个我真没有确定要用哪一种,哪一种是最靠谱的,但应该是没有以大写字母开头的。

3. 私有变量、函数要用下划线前缀吗?

Dojo Javascript 编程规范 是规定必须要下划线前缀的,其他规范并没有要求。而我觉得使用下划线前缀是比较好的,它很大的优点是很明确区分了公共变量和私有变量,一目了然(还有一点淡淡的逼格)。

 

总结

Crockford代码规范并没有对命名规范的说明,兴许是我没找到。相反的,Dojo Javascript 编程规范对于命名规范这部分着实详尽,里面很多可借鉴地方,我取了一点东西。还有HTML的本身就不建议使用自定义标签,所以也没什么命名问题,至于属性,统一风格就行了。

我在文章里面最常说的是统一风格,现实团队协作时候,开始能先统一下规范,对整体代码风格非常有好处的,自己看起来也舒服。最后命名需慎重,尽量简明扼要、清晰易懂。

 

参考文献

1. 《翻译:谷歌HTML、CSS和JavaScript风格规范》 by 张鑫旭

2. 《Google JavaScript代码风格指南

3. 《Crockford 编程规范》 by 阮一峰

4. 《规范自己的JavaScript书写 – Dojo Javascript 编程规范》by 彬Go

 

本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。

本文地址 :http://www.cnblogs.com/lovesong/p/5423425.html

转载:http://www.cnblogs.com/lovesong/p/5423425.html

时间: 2024-11-02 11:45:48

命名的艺术的相关文章

Objective-C 之优雅的命名-看似简单,实际却很考验开发者的功力

There are only two hard things in Computer Science: cache invalidation and naming things. 在计算机科学中只有两件难事:缓存失效和命名.  - Phil Karlton 计算机语言是人和计算机之间通讯的媒介.好的代码应该是就像人对计算机说话那样,自然而优雅.命名看上去是一件很简单的事,而往往越是简单的事越难做好,否则大师们也不会把命名看成是计算机界的难题了.如何把Objective-C这门计算机语言以优雅的方

想成为优秀的程序员这些码德不能缺

我把这些看成是作为一个程序员的基本素质,多数是编码之外的事情: ●代码每天备份:(预防意外导致的任何损失) ●上传代码时写清楚log信息:(为维护这个模块的人着想,有可能是你自己) ●提供接口时不要把问题抛给使用接口的人,升级或者变更接口时不要删掉原来的接口:(为使用你接口的同事着想) ●变量命名要见名知意:(起码不能误导别人) ●在工程中新建一个doc文件夹将项目相关的文档放在该目录下,方便后面维护的人员理解项目和代码:(为维护这个模块的人着想,有可能是你自己) ●签署bug或者转办bug时写

《R语言编程艺术》——3.7 矩阵的行和列的命名问题

3.7 矩阵的行和列的命名问题 访问矩阵元素最直接的方法是通过行号和列号,但也可以使用行名与列名.例如: 如上例所示,这些名称可以用来访问指定的列.rownames()函数的功能与此类似.一般在编写R代码时,给行和列命名并不是那么重要,但在分析某些数据时会很有用.

编写可读代码的艺术

这是<The Art of Readable Code>的读书笔记,再加一点自己的认识.强烈推荐此书: 英文版:<The Art of Readable Code> 中文版:编写可读代码的艺术 代码为什么要易于理解 "Code should be written to minimize the time it would take for someone else to understand it." 日常工作的事实是: 写代码前的思考和看代码的时间远大于真正写

汇编语言的艺术-基本认识(一)

第一节 应用工具 一.对程式的认识 写作程式不难,但要写出好程式却不容易.这就好像画图一样,人人都能画,而画出来的图却可能有天壤之别. 想作一个好画家,首先要有观察及分析的能力,面对着杂乱的事物,先整理出头绪,找到主题.再在画布上勾出轮廓,这叫做「布局」.布局完毕,根据实际的环境,决定作图的先后「顺序」.顺序是一种层次观念,景物及色彩都有一定的层次,绝不可随意所之,想到哪里,画到哪里. 观察考虑完毕,即开始准备,先将画笔.调色板等工具放妥,把要表现的主要色彩也调好.最后是选择适当的画笔,蘸上色彩

Symbian手记【一】 —— Symbian命名法

每个美感尚存的C++ coder,第一次看到Symbian C++的程序,第一反应是:这鬼代码怎么缩进的?接下来,所有人会有疑问应该是:函数和类上的乱七八糟的前后缀是啥意思? 娃再丑也是爸妈生的,生成这模样虽然很无奈,但确实也是事出有因.在我看来,Symbian命名法的核心出发点,就是为了更好的内存资源管理.C++的人肉内存管理模式,在给人以控制到字节的快感的同时,也带了了麻烦到每行代码的烦恼.命名法,就是Symbian设计者憋出来用来辅助管理内存资源的方式之一. 类命名 Symbian的类,通

编码的艺术

我在本文中要谈的不是编码的技术实现,我所关注的是关于编码的风格的问题.我在编写了e速的编码规范之后,产生了要写一些关于程序编码风格的念头:因此,就有了以下的文章,这些仅仅是本人的想法,可能在文章中还有一些未尽如人意的地方,所以肯请大家能够给与谅解. 很多人在谈到编码的艺术时,总会说我的程序怎么怎么的厉害,功能多么的强大,好像什么事情都能完成一样:但是去运行他的程序,bug不断:连他自己都不知道错在了什么地方.打开他的程序一看,代码写的凌乱不堪:命名上不规范,为了偷懒和简便有些命名干脆就用一个字母

培训机构注册浙大艺术网中英文域名假冒招生

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 眼下正是高考落榜生为求学找出路时,要当心一些培训机构和个人利用假冒著名高校名义招生,欺诈社会,牟取利益.记者27日获悉,今年7月浙江大学就打赢了一桩维权官司,对方杭州佳艺教育咨询有限公司被认定在网上利用浙大名义进行欺诈招生. 一年前,网上出现了一个以"浙江大学艺术系·浙大艺术网"命名的网站,以浙大的名义招收艺术类考生.该网

黄相如:关于网站命名系列之一

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 网站命名需要讲究艺术 最近国际家居网发起了一个社区论坛的征名活动(bbs.homevv.com),顿时引起比较激烈的凡响,对于此事我有很多感想,将写成系列文章与网络界的朋友共同来分享与交流-- 一.网站命名的意义 网站名称首先考虑到的是网站的品牌.(比如QQ,百度,新浪,搜狐)网站名称是品牌的一个最重要组成部分.网站在进行品牌设计.品牌建设中,要特别讲求命名艺术,为