前言
之前看到过一个笑话,问“计算机科学的两大难题是什么?“,答曰”缓存失效和命名“。 相信关于代码命名,是经常困扰小伙伴们的一个问题,尤其是对强迫症患者,不同语言切换各种命名风格简直不要太乱。 那么今天,我们就来梳理一下常见的代码命名规范吧。
本文预计阅读时间10分钟,让我们开始吧。
常见命名规范
开始让我们引用《Clean Code》这本书中一段内容:
代码的注释不是越详细越好。实际上好的代码本身就是注释,我们要尽量规范和美化自己的代码来减少不必要的注释。 若编程语言有足够的表达力,就不需要注释,尽量通过代码来阐释。
所以,花几分钟学学规范的命名,让自己的编程语言有足够的表达力,让自己的代码看起来赏心悦目,何乐而不为呢。
1. 驼峰命名法(CamelCase)
又称帕斯卡命名法(PascalCase)
混合使用大小写字母来构成,具体如下
(1)小驼峰命名(lowerCamelCase)
除了第一个单词首字母小写,其他单词首字母大写
示例:linuxCommand
(2)大驼峰命名(CamelCase)
所有单词首字母大写
示例:LinuxCommand
2. 蛇形命名法(snake_case)
使用全小写字母和下划线"_"来构成,具体如下
3. 串式命名法(kebab-case)
使用单词和连字符"-"来构成,具体如下
4. 匈牙利命名法(HN case)
开头字母用变量类型缩写,其余部分用英文或英文缩写,要求第一个字母大写
格式为 属性+类型+描述,
# 示例
lsum: l表示类型为long,
iUserNo: i表示类型为int
cItermList: c表示类型为char
bInitLogin: b表示类型为boolean
frmInfoDetail: frm表示类型窗体,为form的缩写
5. 驼峰蛇形命名法
结合驼峰和蛇形的命名规则
# 示例
Linux_Command
linux_Command
Python命名规范
变量
采用蛇形命名法,单词小写并使用下划线连接,如
注意点
- 无论类成员变量或全局变量,均不使用 m 或 g 前缀
- 私有类成员使用单一下划线作为前缀标识
- 变量名不应带有类型信息,因为python是动态类型语言,如 和都是不好的
常量
所有字母均大写且单词间用下划线连接,如、
函数和方法
采用蛇形命名法,单词小写并使用下划线连接,如
函数形参
采用蛇形命名法,单词小写并使用下划线连接,如
如有形参与关键字冲突,通常使用一个后缀下划线,如
类
大驼峰命名法,单词首字母大写,无连接符,如或
异常
以 Error 作为后缀
文件名
采用蛇形命名法,单词小写并使用下划线连接,如
包
字母全小写,如 ,如果下划线可改善可读性可加入
模块
同包的命名规范,如
缩写
命名应尽量使用全拼写单词,以下两种情况除外
- 常用的缩写。如XML、ID等,在命名时也应只大写首字母,如
- 长单词采用约定缩写,如 function 缩写为 fn、text 缩写为 txt、object 缩写为 obj、count 缩写为 cnt、number 缩写为 num等
前导和后缀
- 一个前导下划线,表示非公有
- 一个后缀下划线,表示避免关键字冲突
- 两个前导下划线,命名一个类属性引起名称冲突时使用
- 两个前导和两个后缀下划线,‘魔’(有特殊用途)对象或属性,例如或者 。不要创造它,只是使用它
*特定命名方式
主要指 xxx 形式的系统保留字命名法。项目中也可使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载,如
class Base(object)
def init(self, id, parent = Nome):
self.id = id
self.parent = parentjava 基础命名
def message(self, msgid):
其中 id、parent、message 都是采用了系统保留字命名法。
Java命名规范
变量
使用小驼峰命名法,包括成员变量和局部变量
常量
使用小驼峰命名法,包括成员变量和局部变量
Java有专属关键字标识常量
函数和方法
小驼峰命名法
类、接口
大驼峰命名法,且单词不建议缩写
接口通常使用形容词或动词来描述接口的动作行为
包
使用小写字母组成,包的路径符合所开发的系统模块的定义,以便通过包名得知属于哪个模块,从而方便找到相应的实现类
- 常规包名
保证每个 Java Package 命名的唯一性,在规范中要求开发人员在自己定义的包名前加上唯一的前缀。 由于互联网上的域名是不会重复的,通常采用自己公司在互联网上的域名作为自己的程序包的唯一前缀,如
- 公司项目
com:公司项目,copyright由项目发起的公司所有
包名:com.公司名.项目名.模块名
- 团队项目
team:团队项目,由指定团发起,copyright由该团队所有
包名:team.团队名.项目名.模块名
- 自定义包名
通常在个人项目中使用自定义包名。个人的英文单词有 individual、persional、private、one-man 等,通常以前四个字母作为前缀以作区分,示例如下
- indi:个体项目,指个人发起,但非个人独立完成的项目,可公开或私有项目,copyright属于发起者 包名:indi.发起者名.项目名.模块名
- pers:个人项目,指个人发起独自完成,可分享的项目,copyright主要属于个人 包名:pser.个人名.项目名.模块名
- priv:私有项目,指个人发起,独立完成,非公开的私人使用项目,copyright属于个人 包名;priv.个人名.项目名.模块名
- onem:与indi相同,推荐使用indi
后记
本文摘抄于于网络上多篇代码笔记,后续统一整理成文,具体原文已不可考证。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/307.html