最近看了一下自己github的repo命名方式,有用Pascal命名法的,有Camel命名法的,有用下划线“_”分割的 (官方名称:snake_case),也有连字符“-”分割 (官方名称:kebab-case),非常混乱。这些不同命名法的效果是
theCamelCase.git
ThePascalCase.git
the_snake_case.git
the-kebab-case.git
于是想研究研究官方建议的命名方式,但是发现官方好像没有推荐的命名方式。
遂google之,果然有篇文章提到了这件事情,见原文链接 , 作者Brendan Falkowski跟我有一样的困惑,还因此发推询问,底下有个叫Bryan Veloso的Github员工回答说 ”没有特殊风格,和具体语言的习惯用法有关。“
但是Brendan继续研究了一下github内部的仓库,发现基本上都是kebab风格
所以他建议也是采用这种风格。
比如:
the-fellowship-of-the-ring.git
the-two-towers.git
the-return-of-the-king.git
全部小写是有好处的
书写方便,小写字母直接敲键盘即可,大写字母需要按住Shift
因为github项目名称出现在url中间,各种语言对于url的处理最兼容方式还是小写
但是单词中间的分隔符是用underscore还是hyfen,我是有不同的看法。两者都可以让单词分割开从而阅读性更强。
hyfen好处:
键盘上直接输入,不用按多余的按键。“-”只需按一次键盘,“_”需要按住shift,所以需要按2次键盘
符合英语连词语法习惯
但是有个严重缺点:
双击单个单词的时候,在很多环境下,比如某些IDE,某些浏览器,某些终端,大部分情况下,被hyfen分割,无法全选,必须手动全选。
比如,以SublimeText for Mac为例,双击单词second的效果
而underscore不会,双击单词second之后,自动全部选中
毕竟这是整个名称,所以全选的概率远远大于单个单词选中的概率。这个对于效率的影响就远大于键盘上输入省去的时间。
结论
我选underscore。
Redis的key名
同样的命名方式也适用于Redis里面的key,以前我们的项目中偏爱用冒号(colon)分割,比如
user:name:blabla
在IDE环境下,同样不能双击某个单词获得整体选中的效果,这样给复制key然后到terminal上输入命令带来低效。
如果换成underscore,也就没有这个问题了。