Skip to main content

命名规范

个人总结的命名规范​

😂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

询问类​

场景单词示例
询问用户一些权限,向用户发起一个需要确认的交互askForXxxxXxxxaskForCameraPermission()询问是否允许使用相机

增​

场景单词
添加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