这些命名法可视为命名惯例,并无绝对与强制,为的是增加可识别性和可读性。一旦选用或设置好命名规则,在程序编写时应保持格式的一致性。
1. 驼峰命名法(Camel Case):
- 小驼峰命名法(Lower Camel Case):第一个单词的首字母小写;第二个单词开始每个单词的的首字母大写。例如:firstName、lastName。
- 大驼峰命名法(Upper Camel Case:每一个单词的首字母都大写。例如:FirstName、LastName、CamelCase。也被称为 Pascal 命名法(Pascal Case),源自于 Pascal 语言的命名惯例。
2. Snake Case:这是书写复合词或短语的一种惯例(practice)。复合词或短语中的各个单词之间用下划线(_)分隔并且没有空格。复合词中的每一个单词的首字母通常都是小写的,并且复合词的第一个字母既可以是大写的又可以是小写的,例如:“foo_bar”和“Hello_world”。一般认为 Snake Case 的可读性要比 Camel Case 要强。
3. 匈牙利命名法(貌似没什么卵用,不用看了):首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此++这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题++。
系统命名法与应用命名法的区别在于前缀的目的。
- 系统型匈牙利命名法(System Hungarian):前缀代表了变量的实际数据类型。
- lAccountNum:变量是一个长整数("l");
- arru8NumberList:变量是一个无符号8位整型数组("arru8");
- szName:变量是一个零结束字符串("sz"),这是西蒙尼最开始建议的前缀之一。
- 应用型匈牙利命名法(Apps Hungarian):前缀给出了变量目的的提示,或者说它代表了什么。
- rwPosition:变量代表一个行("rw")。
- usName:变量代表一个非安全字符串("us"),需要在使用前处理。
- strName:变量代表一个包含名字的字符串("str")但是没有指明这个字符串是如何实现的。
4. Studly caps:这是驼峰命名法的变种。相关资料比较少,wiki上的介绍。
Messages may be hidden in the capital and lower-case letters such as "ShoEboX" which spells "SEX" in capitals and "hobo" in lower-case. The webmail service Hotmail was originally stylized as HoTMaiL, which spells HTML in upper-case.
5. 额。。。用“-”作为分隔符的命名法叫什么?没找到相关的资料~但在 vuejs 的文档中看到这个术语:短横分隔命名kebab-case
网友评论
一般编码规范主要是取决于 业界规范、公司规范,业界规范可以起到促进开源项目交流的作用,公司规范可以使代码便于维护,正所谓无规矩不成方圆嘛。
所以可以先了解一下业界规范,然后再根据公司的实际情况加以调整。
推荐一个 Google 编程相关规范,https://github.com/google/styleguide