Tom CHEN

正在刷新


  • Home
  • Archive
  • Tags
  • tags
  •    

© 2022 Tom CHEN

Theme Typography by Makito

Proudly published with Hexo

下划线(underscore)还是连字符(hyfen)

Posted at 2020-01-08

最近看了一下自己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

全部小写是有好处的

  1. 书写方便,小写字母直接敲键盘即可,大写字母需要按住Shift

  2. 因为github项目名称出现在url中间,各种语言对于url的处理最兼容方式还是小写

但是单词中间的分隔符是用underscore还是hyfen,我是有不同的看法。两者都可以让单词分割开从而阅读性更强。

hyfen好处:

  1. 键盘上直接输入,不用按多余的按键。“-”只需按一次键盘,“_”需要按住shift,所以需要按2次键盘

  2. 符合英语连词语法习惯

但是有个严重缺点:

双击单个单词的时候,在很多环境下,比如某些IDE,某些浏览器,某些终端,大部分情况下,被hyfen分割,无法全选,必须手动全选。

比如,以SublimeText for Mac为例,双击单词second的效果

双击选中单个词

而underscore不会,双击单词second之后,自动全部选中

双击全部选中

毕竟这是整个名称,所以全选的概率远远大于单个单词选中的概率。这个对于效率的影响就远大于键盘上输入省去的时间。

结论

我选underscore。

Redis的key名

同样的命名方式也适用于Redis里面的key,以前我们的项目中偏爱用冒号(colon)分割,比如

user:name:blabla

在IDE环境下,同样不能双击某个单词获得整体选中的效果,这样给复制key然后到terminal上输入命令带来低效。

如果换成underscore,也就没有这个问题了。

Share 

 Previous post: 视频 vs 文字 Next post: 删库事件6周年 

© 2022 Tom CHEN

Theme Typography by Makito

Proudly published with Hexo