怎样给文件、变量和函数命名?
条评论本文转载自 怎样给文件、变量和函数命名?
前言
使用 user_tool.py 还是 user_utils.py?使用 name 还是 username?使用 user_add 还是 add_user?使用 get_user_by_name 还是 get_users_by_name?等等等等,在编程活动中,我们经常会产生各种关于命名的纠结。
给文件、函数、变量命名是一件很难的事,但是也是有方法的。本文中,我们就来学习一下文件、变量和函数命名的方法。
参考文档:
命名方法
要领:一看就懂,保持一致。
文件
由于 Windows, OSX 下文件名不区分大小写 (linux 是区分的),所以命名建议还是以全部小写为主。
连字符可以使用中划线、下划线或者省略,关键是要统一。
目录建议连字符使用中划线,比如: my-project-name。
有复数的情况使用复数命名法,比如: scripts, styles, images 和 data-modules。
文件建议连字符使用下划线,比如:user_test.py。
变量
变量命名常用的有两种方式:
下划线命名法,比如: my_variable
驼峰式命名法,比如: myVariale
python 语言建议使用下划线命名法。
函数
函数命名常用的有两种方式:
下划线命名法,比如: get_user_by_name
驼峰式命名法,比如: getUserByName
python 语言建议使用下划线命名法。不同于变量命名的是,函数名称要使用动词开头,并且尽可能准确。
常用动词表
动词选取要精准。通常来说,动词决定了一个函数要采取什么”动作”。动词取的好,一个函数名字已经成功了 80%。
常用动词表:
| 类别 | 单词 |
| :— | :— |
| 添加 / 插入 / 创建 / 初始化 / 加载 | add、append、insert、create、initialize、load |
| 删除 / 销毁 | delete、remove、destroy、drop |
| 打开 / 开始 / 启动 | open、start |
| 关闭 / 停止 | close、stop |
| 获取 / 读取 / 查找 / 查询 | get、fetch、acquire、read、search、find、query |
| 设置 / 重置 / 放入 / 写入 / 释放 / 刷新 | set、reset、put、write、release、refresh |
| 发送 / 推送 | send、push |
| 接收 / 拉取 | receive、pull |
| 提交 / 撤销 / 取消 | submit、cancel |
| 收集 / 采集 / 选取 / 选择 | collect、pick、select |
| 提取 / 解析 | sub、extract、parse |
| 编码 / 解码 | encode、decode |
| 填充 / 打包 / 压缩 | fill、pack、compress |
| 清空 / 拆包 / 解压 | flush、clear、unpack、decompress |
| 增加 / 减少 | increase、decrease、reduce |
| 分隔 / 拼接 | split、join、concat |
| 过滤 / 校验 / 检测 | filter、valid、check |
常用领域词
名词使用领域词汇。举个例子:集合的容量通常用 capacity、集合实际元素个数用 size、字符串长度用 length,这种就遵循大家的使用习惯,不要用 size 去形如字符串的长度。
再比如,假如使用到建造者模式,那么通常会用 build 作为函数名字,这个时候就不要另辟蹊径,用 create 来作为函数名字,使用大家约定俗成的命名习惯更容易让你的代码被别人读懂。
常用名词表:
| 类别 | 单词 |
| :— | :— |
| 容量 / 大小 / 长度 | capacity、size、length |
| 实例 / 上下文 | instance、context |
| 配置 | config、settings |
| 头部 / 前面 / 前一个 / 第一个 | header、front、previous、first |
| 尾部 / 后面 / 后一个 / 最后一个 | tail、back、next、last |
| 区间 / 区域 / 某一部分 / 范围 / 规模 | range、interval、region、area、section、scope、scale |
| 缓存 / 缓冲 / 会话 | cache、buffer、session |
| 本地 / 局部 / 全局 | local、global |
| 成员 / 元素 | member、element |
| 菜单 / 列表 | menu、list |
| 源 / 目标 | source、destination、target |
常用缩写表
- 本缩写表是《编码命名规范》的附录。
- 本缩写表中列出的都是通用性缩写,不提供标准缩写,如:Win9x、COM 等。
- 使用本缩写表里的缩写时,请对其进行必要的注释说明。
- 除少数情况以外,大部分缩写与大小写无关。
缩写 | 全称 |
---|---|
addr | Address |
adm | Administrator |
app | Application |
arg | Argument |
asm | assemble |
asyn | asynchronization |
avg | average |
DB | Database |
bk | back |
bmp | Bitmap |
btn | Button |
buf | Buffer |
calc | Calculate |
char | Character |
chg | Change |
clk | Click |
clr | color |
cmd | Command |
cmp | Compare |
col | Column |
coord | coordinates |
cpy | copy |
ctl/ctrl | Control |
cur | Current |
cyl | Cylinder |
dbg | Debug |
dbl | Double |
dec | Decrease |
def | default |
del | Delete |
dest/dst | Destination |
dev | Device |
dict | dictionary |
diff | different |
dir | directory |
disp | Display |
div | Divide |
dlg | Dialog |
doc | Document |
drv | Driver |
dyna | Dynamic |
env | Environment |
err | error |
ex/ext | Extend |
exec | execute |
flg | flag |
frm | Frame |
func/fn | Function |
grp | group |
horz | Horizontal |
idx/ndx | Index |
img | Image |
impl | Implement |
inc | Increase |
info | Information |
init | Initial/Initialize/Initialization |
ins | Insert |
inst | Instance |
INT/intr | Interrupt |
len | Length |
lib | Library |
lnk | Link |
log | logical |
lst | List |
max | maximum |
mem | Memory |
mgr/man | Manage/Manager |
mid | middle |
min | minimum |
msg | Message |
mul | Multiply |
num | Number |
obj | Object |
ofs | Offset |
org | Origin |
param | Parameter |
pic | picture |
pkg | package |
pnt/pt | Point |
pos | Position |
pre/prev | previous |
prg | program |
prn | |
proc | Process |
prop | Properties |
psw | Password |
ptr | Pointer |
pub | Public |
rc | rect |
ref | Reference |
reg | Register |
req | request |
res | Resource |
ret | return |
rgn | region |
scr | screen |
sec | Second |
seg | Segment |
sel | Select |
src | Source |
std | Standard |
stg | Storage |
stm | Stream |
str | String |
sub | Subtract |
sum | summation |
svr | Server |
sync | Synchronization |
sys | System |
tbl | Table |
temp/tmp | Temporary |
tran/trans | translate/transation/transparent |
tst | Test |
txt | text |
unk | Unknown |
upd | Update |
upg | Upgrade |
util | Utility |
var | Variable |
ver | Version |
vert | Vertical |
vir | Virus |
wnd | Window |