命名规范
个人总结的命名规范
😂naming is an art
在日常开发中,好的函数命名能减注释的使用,能简化代码的复杂度,也更能看出当前函数是否符合单一职责原则,为项目整体提升可靠的结构
函数的命名是一个函数最重要的部分没有之一
编程语言常用名规范
语言 | 默认命名规范 |
---|---|
C、C#、C++ | |
javascript、java | 大驼峰、小驼峰 |
python、php |
常见命名规范
- Pascal Case 大驼峰式:GetUserInfo
- Camel Case 小驼峰式:getUserInfo
- 常量用大写字母,下划线分割: USER_NAME、MAX_HEIGHT、HOST等
命名原则
函数命名这块很多人,特别是刚入行者都非常不注重,甚至后随意到用fn()
,func()
,foo()
等来命名一些功能函数,这样给项目后期维护或者其他同事试调带来了常用大的困扰,使程序基本的维护成功以几何级增加,所以函数的命名必须有规可遵,有律可循:
尽量不要使用拼音命名
不要拼音和英文混用(大忌)
单词拼写要准确
函数命名采用:动宾结构
- 动宾结构:
doSomethin
、openFile
、setName
、等
- 动宾结构:
- 属性命名采用:定语+名词
- 定语+名词:
fileName
、filePath
、maxLength
、maxWidth
- 定语+名词:
少用缩写
带状态的命名
- 常见状态:
onXxxxStared
、isConnecting
、hasName
、
- 常见状态:
- 单一职责原则
常用函数命名单词
新手命名函数往往经常采用 get xxxxx
, set xxxxxx
,经常无法很好的表达函数实际要做什么,而且使用get容易让人误会成网络请求函数,混淆视听。
数据获取常用单词
数据获取主要分为几个大场景:动词
+名词
- 通过数据库获取
- 通过配置文件获取
- 通过某个计算得到
- 通过网络请求获取
- 通过已存在的对象的中获取
def queryUserInfo():
常用动词总结
动词是命名的开头,决定这个模块、函数将要采取什么操作,一个函数名字是否成功很大程度去取决它的首个单词。
好的名字往往具备以下几个特点:
- 动词选取要精准
- 名词使用领域词汇
- 函数取名最忌讳"名不副实"
- 多查询条件的函数名字谨慎使用介词by
询问类
场景 | 单词 | 示例 |
---|---|---|
询问用户一些权限,向用户发起一个需要确认的交互 | askForXxxxXxxx | askForCameraPermission() 询问是否允许使用相机 |
增
场景 | 单词 |
---|---|
添加 | add |
追加 | append |
插入 | insert |
创建 | create |
初始化 | initialize |
加载 | load |
删
场景 | 单词 |
---|---|
删除、移除 | delete、remove |
销毁 | destroy、 |
丢弃 | drop |
释放 | release |
打开
场景 | 单词 |
---|---|
打开文件 | open |
启动 | start |
加载文件 | load |
提取文件 | extract |
查询
场景 | 单词 |
---|---|
从数据对象中获取 | get、acquire |
从网络上获取 | fetch |
从网络上接收 | receive、pull |
从文件中获取 | read |
从数据库查找 | query |
查找 | search、find |
刷新 | refresh |
重置 | reset |
改
场景 | 单词 |
---|---|
设置数据对象 | set、reset |
发送网络请求 | put、send 、push |
写入文件 | write |
本地提交 | submit |
取消操作 | cancel |
选择 | pick、select |
编码/解码 | encode、decode |
填充 | fill、 |
压缩/解压 | compress、decompress |
清空 | flush、clear |
打包/拆包 | pack、unpack |
增加/减少 | increase、decrease |
分隔/拼接 | split、join、concat |
过滤/校验/检测 | filter、valid、check |
常用名词总结
动词决定了函数的具体动作,而名词决定了函数具体的操作对象,对于名词,尽量使用领域词汇,不要使用生僻或者大家很少使用的词语。
举个例子:集合的容量通常用capacity、集合实际元素个数用size、字符串长度用length,这种就遵循大家的使用习惯,不要用size去形如字符串的长度。
再比如,假如使用到建造者模式,那么通常会用build作为函数名字,这个时候就不要另辟蹊径,用create来作为函数名字,使用大家约定俗成的命名习惯更容易让你的代码被别人读懂。
尺寸
场景 | 单词 |
---|---|
容量 | capacity |
大小 | size |
长度 | length、len |
上下文
场景 | 单词 |
---|---|
实例 | instance |
上下文 | context |
位置
场景 | 单词 |
---|---|
头部 | header |
前面 | front |
前一个 | previous |
第一个 | first |
尾部、后面 | tail |
返回 | back |
下一个 | next |
最后一个 | last |
区间 | range、interval |
区域 | region |
某一部分 | area、section |
范围 | section、scope |
规模 | scale |
其他常用
场景 | 单词 |
---|---|
缓存 | cache |
缓冲 | buffer |
会话 | session |
本地、局部 | local |
全局 | global |
成员 | member |
元素 | element |
菜单 | menu |
列表 | list |
源 | source |
目标 | target、destination |
参阅文献:
ccfc164fee29fd547ef3067eeabfd6e1ae9fc1e3