给函数一个好名字
函数中的动词选取
避免滥用能用单词
万能的 Get
GetTotalAmount();
- 获取属性
- 获取本地存储内容
- 获取网络内容
- 获取数据库内容
获取计算后的内容
万能的 Add
AddCharacter();
添加到头部
- 添加到尾部
- 从中间插入字符
问题:通过单词可以在很多场景下命名,但不能区分具体的函数职责。当函数本身的实现途径不同时,难以从函数名得到足够的信息。
函数命名动词
创建 / 销毁
动词 |
用途 |
示例 |
Create |
创建实例,常用于实例化方法和工厂方法 |
CreateInstance |
Initialize |
初始化实例的属性和设置,Initialize 本身也可作为类方法用来初始化 |
InitializeInstance / Initialize |
Load |
加载配置,根据配置创建内容 |
LoadFromConfig |
Destory |
销毁实例,常用于析构方法 |
DestroyInstance |
Uninitialize |
清理实例的属性和设置,通常与 Initialize 对应 |
UnitializeInstance / Unitialize |
获取 / 设置
动词 |
用途 |
示例 |
Get |
常用于取属性的类方法命名,也可作为能用获取方法命名 |
GetStartTime |
Fetch |
通过网络请求获取内容 |
FetchAllUsers |
Calculate |
通过计算获取内容 |
CalulateTotalAmount |
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 |
用于通过添加方法命名 |
AddNewStundent |
Append |
强调在尾部添加(追加) |
AppendCharacter |
Insert |
强调插入(可以在任意位置) |
InsertCharacter |
Delete |
表示删除,和 Remove 相近 |
DeleteDirectory |
Remove |
表示移除,和 Delete 相近 |
RemoveInvalidDeals |
启动 / 停止
动词 |
用途 |
示例 |
Open |
开启(多用于开启状态,打开文件等) |
OpenEnhanceMode |
Start |
开始(强调开始某个流程) |
StartPortListening |
Launch |
发动 / 启动(多用于启动程序,服务) |
LaunchAssistService |
Close |
关闭(多用于关闭状态,关闭文件等) |
CloseEnhanceMode |
Stop |
停止(强调流程的终止) |
StopProtListening |
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 |
格式化数据 |
FormatToLocationString |
Validate |
合法性 / 有效性的校验 |
ValidateUserInputs |
Ensure |
期待值的校验 |
EnsureUserAge |
Compose |
组成(一般由多项内容组成一个结果) |
ComposeMessage |
Encode |
编码(依赖约定的编码格式) |
EncodeUrl |
Decode |
解码(依赖约定的解码格式) |
DecodeUrl |
Encrypt |
数据加密(依赖约定的加密算法) |
EncryptContent |
Decrypt |
数据解密(依赖约定的解密算法) |
DecryptContent |
Backup |
备份(需要注意拷贝方式,避免误导) |
BackupUserSettings |
Restore |
恢复 |
RestoreUserSettings |
Import |
导入(通常用于按照特定格式的文件转换) |
ImportFromFile |
Export |
导出(通常用于转换成特定格式的文件) |
ExportToFile |
Compress |
压缩(依赖约定的算法) |
CompressOversizedFile |
Decompress |
解压(依赖约定的算法) |
DecompressOversizedFile |