一个程序员的修养(1) - -变量的命名

本文探讨了程序员在命名变量时的四种常见规范:驼峰命名法、匈牙利命名法、snake case和kebab case。驼峰命名法在Java和.NET中广泛使用,而匈牙利命名法则通过前缀表示变量类型,但在现代编译器能自动识别类型后逐渐减少使用。snake case常见于shell、PHP和Python,而kebab case则较少用于编程,但有时出现在日常表达中。

一个程序员的修养(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; 看起来,是不是很像骆驼的驼峰 :)

camelCase
这种方法往往在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?

[8] GPA_Coding_Guidelines_2011_0.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值