前言
在软件工程领域,命名是一个逃不掉避不开的话题,也是令工程师最头疼的事,这里来梳理一下命名风格的分类和各种风格命名的适用场景。
命名的目的是为了更好的理解名称代表的事物,由于软件兴起来源于西方,所以目前命名的主要都是使用字母加字符的组合,使用中文和其他语言非常稀少,虽然很多语言也支持了但是不是主流风格。
命名风格分类
- 蛇形命名法(snake_case):又叫下划线命名法,使用下划线,单词小写,比如:my_system;
- 驼峰命名法(CamelCase):按照单词首字母区分大小写,又可细分为大驼峰命名法和小驼峰命名法,比如:MySystem,mySystem;
- 匈牙利命名法(HN case):属性 + 类型 + 描述,比如:lAccountNum,arru8NumberList,szName,u32Identifier,fnFunction;
- 帕斯卡命名法(PascalCase):全部首字母大写,等同于大驼峰命名法,比如:MySystem;
- 脊柱命名法(spinal-case):使用中划线,比如:my-system;
- 自由命名法(StUdLyCaPs):大小写混杂,无规则,比如:mySYSTEM,MYSystem;
由于可读性和信息表达效率,驼峰命名法和蛇形命名法更受到大家的欢迎,几乎所有编程语言都会采用
使用场景
| 命名风格 | 场景 | 案例 | 介绍 |
|---|---|---|---|
| 蛇形命名法 | 文件名,文件夹名,部分语言的方法名变量名 | my_system | 蛇形命名法 Wiki |
| 驼峰命名法 | 类名,枚举常量 | MySystem | 驼峰命名法 Wiki |
| 匈牙利命名法 | 变量名 | lAccountNum | 匈牙利命名法 Wiki |
| 帕斯卡命名法 | 类名 | MySystem | 帕斯卡命名法 Wiki |
| 脊柱命名法 | Unix和Linux系统中传统的文件夹 | my-system | - |
| 自由命名法 | 没有规律,随意 | MYSystem | - |
不同语言的命名习惯参考:命名规则 (程序设计),命名风格没有对错优劣之分,只是大家的习惯不一样演变成不同的流派,不同的语言需要按照场景使用对应的主流命名风格,但是命名真的不是一件容易的事。
正如一句经典的话语,道出了计算机领域两个最大的难题:命名与缓存。
There are only two hard things in Computer Science: cache invalidation and naming things. – Phil Karlton