当前位置: 首页 > news >正文

四种基本的编程命名规范

目前,共有四种基本的编程命名规范,分别是匈牙利命名法、驼峰式命名法、帕斯卡命名法和下划线命名法,其中前三种命名法较为流行。

例如:iMyData是一个匈牙利命名法;myData是一个驼峰式命名法;MyData是一个帕斯卡命名法;my_data是一个下划线命名法。

在后四篇文章中我会具体讲解每种命名法的命名规则,在此之前我们了解一下命名的基本规则。

(1)标识符的命名要清晰明了,有明确含义,同时使用完整的单词或大家基本可以理解的缩写,避免使人产生误解。尽量采用英文单词或中文全拼表示,若出现英文和中文混合定义时,使用连字符“-”将英文和中文割开。较短的单词可以通过去掉“元音”形成缩写;较长的单词可取单词的头几个字母形成缩写;还有一些单词拥有大家公认的缩写。例如:temp->tmp、message->msg等缩写能够被大家基本认可。

(2)命名中若使用特殊约定或缩写,则要有注释说明。应该在源文件的开始之处对文件中所使用的缩写或约定,特别是要对特殊的缩写进行必要的注释说明。

(3)自己特有的命名风格要自始至终保持一致,不可来回变化。个人的命名风格,在符合所在项目组或产品组的命名规则的前提下才可使用,即命名规则中没有规定到的地方才可以有个人命名风格。

(4)对于变量命名,禁止取单个字符,如i、j、k等,建议除了要有具体的含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。

(5)除非必要,不要使用数字或较奇怪的字符来定义标识符。

(6)命名规范必须与所使用的系统风格保持一致并在同一项目中统一。

 编程命名规范之匈牙利命名法

匈牙利命名法是一种编程时的命名规范,由微软公司Excel的主要设计者查尔斯·西蒙尼提出,因为西蒙尼是匈牙利人,所以称这种命名规范为匈牙利命名法。

匈牙利命名法的基本原则是:变量名=属性+类型+对象描述。其中对每一个对象名称都要求有明确含义,比如取对象名字的全称或一部分,命名要容易记忆与理解,且保证其连贯性。

匈牙利命名法为C标识符的命名定义了一种非常标准化的方式,以如下两条规则为基础:

1)标识符的名字以一个或多个小写字母开头,用这些字母来指定数据类型。

2)在标识符内,前缀以后就是一个或多个第一个字母大写的单词,这些单词清楚地指出了源代码内该对象的用途。

例如:m_szStudentName表示一个学生名字的类成员变量,数据类型是以“\0”结束的字符串型。

前缀类型:

前缀类型

b

布尔型

c

字符型
C类或结构

d

双精度型

f

浮点型
i整型
l长整型
m_成员变量
n无符号值
p指针
S结构体
sz以“\0”结束的字符串
str字符串型

编程命名规范之驼峰式命名法

驼峰式命名法又称骆驼式命名法,由于Perl语言中普遍使用大小写混合格式,而Larry Wall等人所著的畅销书《Programming Perl》的封面图片是一匹骆驼,所以称这种命名规范为骆驼式命名法。

驼峰式命名法混合使用大小写字母来构成变量和函数的名字,我们可以将驼峰式命名法的命名规则视为一种惯例,使用驼峰式命名法是为了增加识别性与可读性。

一般我们所说的驼峰式命名法指的是小驼峰式命名法。

小驼峰式命名法的命名规则为:firstName,camelCase。也就是说,除了第一个单词之外,其他单词的首字母大写,常用于变量的命名。

例如:int myStudentCount

注意事项:

1)由于Java面向对象编程的特性,在命名时应尽量选择名词。

2)包名的书写规范推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司或机构内所使用的包名的唯一性,包名全部为小写字母,且具有实际的区分意义。

编程命名规范之帕斯卡命名法 

帕斯卡命名法又称大驼峰式命名法,其命名规则为:FirstName,CamelCase。也就是说,所有单词的首字母大写,常用于类名的命名。

例如:public class DataBaseUser

注意事项:

1)单字之间不以空格断开或连接号(-)、底线(_)连结。

2)在C#中,以帕斯卡命名法和骆驼命名法居多。C#的编码惯例中,给公共成员变量(public)、受保护的成员变量(protect)或内部成员变量(internal)命名时,应使用帕斯卡命名法命名,给私有成员变量(private)命名时,应使用驼峰式命名法命名,并以一个下划线开头。

命名时的良好习惯:

(1)自定义的属性以Attribute结尾。

(2)自定义的异常以Exception结尾。

(3)方法的命名一般为动宾短语,例如:CreateFile()。

(4)代码的缩进要用Tab,不用Space。

(5)局部变量和命名空间(namespace)的名字要有意义。

(6)生成和构建一个长的字符串时,一定要使用StringBuilder,而不用string。

编程命名规范之下划线命名法 

下划线命名法要求名称中的每一个逻辑断点都用一个下划线来标记,即使用下划线分割多个单词。随着C语言的出现,下划线命名法逐渐流行起来,在Unix、Linux环境下以及在GNU代码中的使用非常普遍。

例如:int my_age

使用下划线命名法,单词字母都是小写,看起来十分简洁。

Python中使用下划线命名的规则:

(1)前后无下划线表示该变量、函数、成员或方法公有,可以以任何形式访问。

(2)前置单下划线表示该内容受保护,被看作是“protect”,意味着只有类对象和子类对象自己能访问到这些变量,在模块或类外不可以使用,不能用“from module import *”导入。

(3)私有成员“private”,前置双下划线表示该变量、函数、成员或方法私有,意味着只有类对象自己能访问,连子类对象也不能访问到这个数据,不能用“from module import *”导入。

(4)前后双下划线的命名方式用于Python里的特殊方法,用户不要这样定义。

(5)后置单下划线,用于避兔和Python关键词冲突,无特殊含义。

http://www.lryc.cn/news/472907.html

相关文章:

  • 【前端】在 TypeScript 中使用 AbortController 取消异步请求
  • k8s知识点总结
  • 论文阅读:三星-TinyClick
  • Windows on ARM上使用sherpa-onnx实现语音识别
  • Unity 打包AB Timeline 引用丢失,错误问题
  • 【Kettle的安装与使用】使用Kettle实现mysql和hive的数据传输(使用Kettle将mysql数据导入hive、将hive数据导入mysql)
  • STM32的hal库在实现延时函数(例如:Delay_ms 等)为什么用滴答定时(Systick)而不是定时器定时中断,也不是RTC?
  • 刚刚买的域名被DNS劫持了怎么处理
  • 递归 算法专题
  • Logstash 迁移索引元数据(设置和映射)
  • 用python将pdf转成图片转换成对应的word文件
  • list(c++)
  • 51单片机STC8G串口Uart配置
  • uni-app使用movable-area 实现数据的拖拽排序功能
  • 如何设置使PPT的画的图片导出变清晰
  • 和鲸科技 CEO 范向伟受邀揭牌启动南京大学 2024 级大学生人工智能素养大赛
  • NewStarCTF2024-Week4-Web-WP
  • Java学习Day56:暴打舔狗!(SpringBoot)
  • RSA加密算法实现
  • 大数据新视界 -- 大数据大厂之优化大数据计算框架 Tez 的实践指南
  • java 中 List<T> 类型数据在 postgreSql 数据库中存储
  • 公共命名空间,2024年10月的笔记
  • frida脚本,自动化寻址JNI方法
  • ‌MySQL中‌between and的基本用法‌
  • Ceph 存储系统全解
  • C# ftp帮助类 项目实战优化版
  • 栈和队列相关|有效的括号|用队列实现栈|用栈实现队列|设计循环队列(C)
  • 云原生后端开发教程
  • TortoiseSVN小乌龟下载安装(Windows11)
  • Android adb命令获取设备id