一个程序员的修养(1) - -变量的命名
关键字: naming convention
前言:
名字, 应该是可以代表一个事物含义的字符串; 无论是给小动物起名还是在写程序程序的时候给变量起名,都应该遵守这个规则;
那么问题来,如果想要给变量起名具有含义,那必定是多个英文单词的组合, 这些单词又应该如何让人很快的理解含义呢?
1. 驼峰命名法(Camel Case/Hump Case)
所命名的变量是一组有含义的英文单词,这些写单词的首字母大写;
Demo
String myTestValue ; // 这是Lower Camel Case, 很多Java语言写的教材中常用这种命名方法
String MyTestValue ;// 这种命名方法叫UpperCamelCase,也叫作帕斯卡命名法”(PascalCase)
[来自维基百科: https://en.wikipedia.org/wiki/Camel_case#Variations_and_synonyms ]
P.S.:
驼峰命名法很形象的解释了命名后的变量形状–很想骆驼的驼峰.
生活中类似的命名也是很多:
例如: McDonald; iPod ; iPhone; 看起来,是不是很像骆驼的驼峰 :)
这种方法往往在java和.Net的教材中出现的比较多;
2.匈牙利命名法(Hungary Type Notation)
细心的同学可能发现了, 驼峰命名法一般没法知道变量的类型, 于是有了这样的结构: 变量类型+驼峰命名
变量名=属性or类型(prefix)+对象描述
这就是匈牙利命名法
String strMyTestValue; //str是字符串(string)缩写, i是整型数字(integer)缩写 ,详情见参考文献[4]
P.S.:
看起来Hungary Type Notation是比较全面的, 其实实际上使用的最多的还是驼峰命名法,原因很简单–现在很多编译器可以自动识别变量的类型, 程序员也就没有必要再多写一些前缀来代表变量类型了,详见参考文献[5,6]
3. snake case
单词之间使用下划线_来表示;
和驼峰命名法的区别就是这些;
这种方式常常见于shell/php/python语言中,
Demo:
my_test_value #小写+下划线隔开
P.S.:
在tensorflow中的很多函数的名字就是以这种方法命名的; 比如
tf.nn.bias_add(); input_data.read_data_sets()等等….
4. kebab case
my-test-value # 小写+短横线隔开,这种方式没咋见过
p.s.
个人不喜欢,忽略…..
这种命名方法在在生活中似乎也很常见.
比如: 开学的时候自我介绍: i am Mc-Jone : )
参考文献
[1] camelCase - PascalCase vs. CamelCase - pascalCase
[2] Camel case-维基百科
[3] Capitalization Styles–来自Micrsoft
[4] Naming convention (programming)–来自维基百科
[5] Camel or Hungarian notation
[6] Why shouldn’t I use “Hungarian Notation”?
[7] 命名規則
A standard for usage of snake case, camel case, pascal case etc?
本文探讨了程序员在命名变量时的四种常见规范:驼峰命名法、匈牙利命名法、snake case和kebab case。驼峰命名法在Java和.NET中广泛使用,而匈牙利命名法则通过前缀表示变量类型,但在现代编译器能自动识别类型后逐渐减少使用。snake case常见于shell、PHP和Python,而kebab case则较少用于编程,但有时出现在日常表达中。
7631

被折叠的 条评论
为什么被折叠?



