给函数起个好名字—动词选择

简介: 给函数起个好名字—动词选择

选取原则1 避免滥用通用单词

案例1:万能的Get

GetTotalAmount();

获取属性?

获取本地存储内容?

获取网络内容?

获取数据库内容?

获取计算后的内容?

......

案例2:万能的Add

AddCharacter();

添加到头部?

添加到尾部?

中间插入字符?

......

问题:

通用单词可以在很多场景下命名,但不能区分具体函数职责

函数本身的实现途径不同时,难以从函数名得到足够的信息

函数命名动词大全指南:

创建/销毁

动词 用途 示例
Create 创建实例,常用于实例化方法和工厂方法的命名 CreateInstance
Initialize 初始化实例的属性和设置,Initialize本身也可作为类方法用来初始化 InitializeInstance,Initialize
Load 加载配置,根据配置创建内容 LoadFromConfig
Destroy 销毁实例,常用语析构方法 DestroyInstance
Uninitialize 清理实例的属性和设置,通常和Initialize对应 UninitializeInstance,Uninitialize

获取/设置

动词 用途 示例
Get 常用于取属性的类方法命名,也可作为通用获取方法命名 GetStartTime
Fetch 通过网络请求获取内容 FetchAllUsers
Calculate 通过计算获取内容 CalculateTotalAmount
Read 读取(多用于文件,配置等) ReadFile,ReadConfig
Query 查询 QueryRemainingAmount
Find 查找(多用于数据库,集合等),和search相似 FindOrder
Receive 接收(多用于文件,消息等) ReceiveNewMessage
Pull 拉取 PullLastestSourceCode
Set 常用于设置属性的类方法命名,也可作为通用设置方法命名 SetStartTime
Write 写入(文件/配置等) WriteFile,WriteConfig
Put 放入 PutUserWithId
Push 存入,推送(通知) PushNotification

更新

动词 用途 示例
Reset 强调重置(标记,状态) ResetTimer
Refresh 用于命名刷新(多用于页面,缓存等) RefreshCurrentPage
Update 更新(多用于配置,状态等) UpdateUserSetting

添加/移除

动词 用途 示例
Add 用于通用添加方法命名 AddNewStudent
Append 强调在尾部添加(追加) AppendCharacter
Insert 强调插入(可以在任意位置) InsertCharacter
Delete 表示删除,和Remove相近 DeleteDirectory
Remove 表示移除,和Delete相近 RemoveInvalidDeals

启动/停止

动词 用途 示例
Open 开启(多用于开启状态,打开文件等) OpenEnhanceMode
Start 开始(强调开始某个流程) StartPortListening
Launch 发动/启动(多用于启动程序,服务) LaunchAssistService
Close 关闭(多用于关闭状态,关闭文件等) CloseEnhanceMode
Stop 停止(强调流程的终止) StopPortListening
Pause 暂停(强调流程的暂停,有可能后续会继续开启) PausePageLoading
Finish 完成(强调流程的完成) FinishRequesting

集合类型相关数据处理

动词 用途 示例
Filter 过滤,筛选(强调按照某些条件) FilterByName
Merge 合并(有时会带上合并规则) MergeTwoConfig
Concat 拼接(直接在结尾添加) ConcatToArray
Split 分割 SplitInput
Deduplicate 去重(去重完全相同的项) DeduplicateList
Reverse 颠倒,反向排列 ReverseRecord
Sort 排序(有时会带上排序规则) SortDealsByAmount
Fill 填充(一般会进行覆盖) FillAmountList

通用业务数据处理

动词 用途 示例
Parse 解析(解析成某些格式,解析提取某些内容) ParseFromJson,ParseResult
Analyse 分析(不一定能通过简单的方式获取) AnalyseLocation
Convert 类型转换(通常用于从一个类型转换到另一种类型) ConvertToString
Format 格式化数据 FormatToLocaleString
Validate 合法性/有效性的校验 ValidateUserInputs
Ensure 期待值的校验 EnsureUserAge
Compose 组成(一般由多项内容组成一个结果) ComposeMessage
Encode 编码(依赖约定的编码格式) EncodeUrl
Decode 解码(依赖约定的解码格式) DecodeUrl
Encrypt 数据加密(依赖约定的加密算法) EncryptContent
Decrypt 数据解密(依赖约定的解密算法) DecryptContent
Backup 备份(需要注意拷贝方式,避免误导) BackupUserSettings
Restore 恢复 RestoreUserSettings
Import 导入(通常用于按照特定格式的文件转换) ImportFromFile
Export 导出(通常用于转换成特定格式的文件) ExportToFile



目录
相关文章
|
11月前
|
编译器 Python
python之局部变量和全局变量的定义,两者之间的区别和使用方法,global和nonlocal的定义和使用方法,可变与不可变类型的定义和示例
python之局部变量和全局变量的定义,两者之间的区别和使用方法,global和nonlocal的定义和使用方法,可变与不可变类型的定义和示例
111 0
|
3月前
|
存储 API C语言
C语言函数大全--e开头的函数
【6月更文挑战第6天】本篇介绍 C语言中 e开头的函数【C语言函数大全】
43 16
C语言函数大全--e开头的函数
|
3月前
|
存储 API C语言
C语言函数大全--f开头的函数(上)
【6月更文挑战第7天】本篇介绍 C语言中 f 开头的函数(上篇)【C语言函数大全】
47 3
C语言函数大全--f开头的函数(上)
|
3月前
|
存储 API C语言
C语言函数大全--b开头的函数
【6月更文挑战第2天】本篇介绍 C语言中 b开头的函数【C语言函数大全】
33 7
C语言函数大全--b开头的函数
|
3月前
|
存储 Linux Serverless
C语言函数大全--d开头的函数
【6月更文挑战第5天】本篇介绍 C语言中 d开头的函数【C语言函数大全】
42 1
C语言函数大全--d开头的函数
|
3月前
|
C语言 存储 编译器
C语言函数大全--a开头的函数
【6月更文挑战第1天】本篇介绍 C语言中 a开头的函数【C语言函数大全】
27 2
C语言函数大全--a开头的函数
|
4月前
|
存储 数据可视化 编译器
learn_C_deep_1 (C程序补充知识、变量的声明和定义、声明和定义的区别)
learn_C_deep_1 (C程序补充知识、变量的声明和定义、声明和定义的区别)
|
4月前
|
C语言
元组命名
在Julia中,可以为元组命名以方便访问。方法包括:1) 分别命名键和值,如`shape_item2 = NamedTuple{names_shape}(values_shape)`,然后通过`.corner1`,`.corner2`访问;2) 键值对在同一元组中,如`shape_item = (corner1 = (1, 1), ...)`,同样用`.`访问;3) 使用`merge()`合并两个命名元组,如`merge(shape_item, colors_shape)`。这增强了元组的可读性和实用性。
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
python函数参数的传递、带星号参数的传递,2024年大厂Python高级面试题分享
python函数参数的传递、带星号参数的传递,2024年大厂Python高级面试题分享
|
11月前
|
Python
python之数据的赋值方式,变量内存地址的获取方式,获取变量名的方法,不同方法之间的区别
python之数据的赋值方式,变量内存地址的获取方式,获取变量名的方法,不同方法之间的区别