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()等来命名一些功能函数,这样给项目后期维护或者其他同事试调带来了常用大的困扰,使程序基本的维护成功以几何级增加,所以函数的命名必须有规可遵,有律可循:

  • 尽量不要使用拼音命名

  • 不要拼音和英文混用(大忌)

  • 单词拼写要准确

  • 函数命名采用:动宾结构

    • 动宾结构:doSomethinopenFilesetName、等
  • 属性命名采用:定语+名词
    • 定语+名词:fileNamefilePathmaxLengthmaxWidth
  • 少用缩写

  • 带状态的命名

    • 常见状态:onXxxxStaredisConnectinghasName
  • 单一职责原则

常用函数命名单词

新手命名函数往往经常采用 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