$X

原创 2006年06月29日 11:10:00
可能自从prototype引入$()后,使用$起头的短名字就成为风潮。随便列举如下:

prototype:

$(id, ...)  基本上是document.getElementById的缩写
$A(a)  转换到Array
$R(...)  产生一个Range
$H(h)  产生一个Hash
$F(c)  返回form control的值

jQuery:

$(css)  根据css selector查询
$(xpath)  根据xpath查询
$(element)  返回wrap后的元素
$.get()  http get
$.post()  http post

多数js toolkit或者框架都沿袭prototype的道路,例如atlas。不过linb似乎走的更远。

linb:

$d$
$h$
$ID$
$SC$
$CLASS$
$thread$
$E$
$DD$
...
除此之外还有:
转型
_.A
_.B
_.D
_.F
_.H
_.N
_.S
判断类型
_.isA
_.isB
_.isD
_.isF
_.isH
_.isN
_.isS
其中,A表示Array,B表示Boolean,D表示?(一时忘记了),F表示Function,H表示Hash,N表示Number,S表示String。

一般而言,为脚本提供一些短名字是很有价值的。但这只限于最常用的功能,prototype的例子便是如此。如range,虽然一般js很少用range,但prototype受到ruby的影响很大,故会大量使用range,为其找一个$R的缩写也是情理之中。

反观linb,虽然从A到S等缩写还算贴切,但对于$和_的过度使用就有些走火入魔。特别是$xxx$,在cvs和svn中,$xxx$常作特别用途,如$Id$来插入id。

此外$和_在js社区来说,还有一些用法约定。例如_开头的通常表示private,$开头的通常表示内部参数或者具体实现的细节(如dean edwards的压缩器就是如此),或者用$开头来避免与关键字冲突。如果没有适当的理由,最好不要破坏这种惯例。当然prototype建立了一个新的 惯例,即用$X($后跟一个大写字符)来作为最常用函数的缩写。但是不是谁都能做到创立新的惯例的。

我们都知道代码的清晰性比单纯的代码长短更重要。短名字再精巧,也是需要人记忆的。如果一个人有兴趣来选择linb,必然会有先看看example,但是 example中充斥着大量的$x$或者_.X之类的符号,对不熟悉的人来说形同天书。这样的学习曲线,必然会影响linb的推广。况且$和_都是需要 shift才能输入的字符,考虑这一点,$E$比Event,_.isA比isArray的写法又有什么优势?

一个较为合理的方式是,将$X作为一个长名字的缩写,使用者可以用长名字,也可以使用缩写。这样的缩写不宜太多,特别是没有必要像分果果一样给26个字母都安一个缩写功能。

linb还存在一些其他问题,我会另文讨论。





 

关于U盘安装CentOS 7(CentOS-7-x86_64-DVD-1708.iso)的流程以及安装过程中的一些问题

1、CentOS 7的安装镜像的获取: CentOS官方网站:https://www.centos.org/ 2、使用UltraISO打开下载的镜像文件,并通过启动 --> 写入硬盘镜像 ...

CentOS 6.X 安装中文字体

由于业务需要,需要对CentOS6.9添加中文字体支持安装工具包 yum install -y fontconfig mkfontscale 安装完成后,使用fc-list命令查看系统中已经安装的字体...

VL6180X传感器驱动

vl6180x_i2c.c #include "vl6180x_i2c.h" #include uint8 data_reg=0; /* *******************************...

Cocos2d-x设计模式发掘之一:单例模式

本系列文章我将和大家一起来发掘cocos2d-x中所使用到的设计模式,同样的,这些模式在cocos2d-iphone中也可以找到其身影。 声明:这里发掘模式只是我的个人爱好,通过这个过程,我希望...
  • w00w12l
  • w00w12l
  • 2013年12月09日 10:32
  • 6756

推荐一个文献翻译软件--Deja Vu X

推荐一个文献翻译软件--Deja Vu X

x265不同preset下的参数集合

Ultrafast x265 [info]: HEVC encoder version 1.8 x265 [info]: build info [Linux][GCC4.8.5][64 bit] 8b...

Cocos2d-x引入中文支持库并移植到android平台

Cocos2d-x引入中文支持库并移植到android平台

讨论cocos2d-x字体绘制原理和应用方案

个人一直认为,文字绘制是cocos2d-x最薄弱的环节。对于愤怒的小鸟之类的游戏,cocos2d提供的文字绘制功能已足够使用。但是对于一个mmo来说,则完全不够。一个优秀的mmo客户端必然会对其有进行...

如何在JM8.6代码的编码端提取残差(为简便起见,仅以I4x4宏块为例)

要在JM8.6代码中找出某一数据,不能瞎撞,不能用蛮力,而是要根据H.264的流程来找.比如,要在编码端找到像素残差,就可以按照下面的思路来找. (为简便起见,仅以I4x4宏块为例)        ...
  • stpeace
  • stpeace
  • 2012年11月20日 23:04
  • 2125

编译x86_64老是不过,iphone模拟器debug不了解决方法

其实没什么好解决的, 忍了2年了 所以今天重新把所有代码,所有编译过程,重新看一遍 编译curl很多遍了,老是提示architecture x86_64 一开始以为是编译问题,还想用gcc重新...
  • avi9111
  • avi9111
  • 2016年10月16日 17:36
  • 652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:$X
举报原因:
原因补充:

(最多只允许输入30个字)