变量(函数)命名最佳实践
良好命名的必要
- 代码命名是件很头疼的事情,既要
语义化
又要简洁
,最终目的为了代码的可维护性
- 合适的命名会使代码读起来优雅流畅、耐人寻味,让你的代码如艺术品一般。比如:
promise
- 异步请求数据时,“承诺”一定会回应(成功或失败),很有画面感on
/off
- jquery 中表示监听和销毁事件,言简意赅,方便易用fork
- github 的 fork 操作,由“叉子”引申为复刻属于自己的分叉,形象生动
良好命名的要点
-
使用能够表达意图的名字
良好命名能够告诉我们它要做什么,为什么存在,以及是如何工作的。选择能够表达意图的名字,有利于我们清楚理解程序含义。相反,名不副实则会误导阅读代码的人,有时需要打断点才能判断出程序的真实功能。
-
不要怕在选择名字上花时间
多尝试几种不同的名字,直到足以描述程序含义,不要害怕在命名上花时间。以后阅读你代码的人(包括自己)会因此受益。而且,一个具有清晰描述性的命名,还有助于你在心中理清模块的设计。良好的命名可能需要花费额外的时间,但是从长远来看,利大于弊。
-
类名
类名应该是个名词或名词词组,如 Customer、Account、AddressParser。父类的命名应该简短,子类的应该详尽,通过形容词来描述其不同于父类之处,如 SavingsAccount 继承自 Account。
-
变量名
变量名一般应该是名词。如果是布尔变量,应写成谓词的形式,如 isEmpty,这样放到if 语句才便于理解。
-
方法名
方法名应该是一个动词或动词词组,如 sendMessage()、getUser()、save()。访问器和设置器应该分别带有 get 和 set 前缀。返回布尔值的方法应该前缀
is
,如 isPostable()。
常用动词、对仗词
单词 | 语义 |
---|---|
add / remove | 添加 / 移除 |
add / delete | 添加 / 删除 |
able / disable | 可用 / 不可用 |
insert / delete | 插入 / 删除 |
start / stop | 开始 / 停止 |
begin / end | 开始 / 结束 |
send / receive | 发送 / 接收 |
get / set | 取出 / 设置 |
get / release | 获取 / 释放 |
put / get | 放入 / 取出 |
up / down | 向上 / 向下 |
show / hide | 显示 / 隐藏 |
open / close | 打开 / 关闭 |
source / target | 源 / 目标 |
source / destination | 源 / 目的地 |
serialize / unserialize | 序列化 / 反序列化 |
increment / decrement | 增加 / 减少 |
lock / unlock | 锁 / 解锁 |
old / new | 旧的 / 新的 |
first / last | 第一个 / 最后一个 |
next / previous | 下一个 / 前一个 |
create / destroy | 创建 / 销毁 |
min / max | 最小 / 最大 |
visible / invisible | 可见 / 不可见 |
valid / invalid | 验证有效 / 验证无效 |
pop / push | 出栈 / 入栈 |
store / query | 存储 / 查询 |
reset | 重置 |
format | 格式化 |
validate | 验证 |
handle | 处理 |
toggle | 开关 |
dispatch | 分派 |
常用名词
单词 | 语义 |
---|---|
settings | 配置 |
iterator | 迭代器 |
adapter | 适配器 |
listener | 监听器 |
trigger | 触发器 |
acceptor | 接收器 |
connector | 连接器 |
dispatcher | 分派器 |
reactor | 反应器 |
executor | 执行器 |
parser | 解析器 |
builder | 生成器 |
handler | 处理器 |
Invoker | 调用方 |
validator | 验证器 |
modle | 模型 |
常用缩写
建议在 css 中命名多用缩写,在 js 中根据实际场景选择是否使用
原始单词 | 缩写 |
---|---|
abbreviation | abbr |
address | addr |
administrator | admin |
analysis | anlys |
architecture | arch |
ascending | asc |
attribute | attr |
authentication | auth |
background | bg |
body | bd |
business | biz |
button | btn |
buffer | buf |
calculator | calc |
column | col |
command | cmd |
configuration | conf |
constant | const |
content | cnt |
context | cxt |
control | ctrl |
copy | cp |
delete | del |
dependency | dep |
develop | dev |
distribution | dist |
document | doc |
element | el |
environment | env |
escape | esc |
execute | exec |
footer | ft |
format | fmt |
frequently asked questions | faqs |
function | fn |
header | hd |
information | info |
insert | ins |
introduction | intro |
label | lbl |
library | lib |
list | ls |
lock | lk |
manager | mgr |
maximum | max |
message | msg |
millimeter | ml |
minimum | min |
module | mod |
move | mv |
multiply | mul |
navigation | nav |
number | num |
option | opt |
package | pkg |
page | pg |
parameter | param |
password | pwd |
picture | pic |
position | pos |
property | prop |
recommendation | rec |
register | reg |
remove | rm |
repository | repo |
request | req |
response | resp |
screen | scr |
second | sec |
something | sth |
source | src |
server | sev |
system | sys |
table | tbl |
telephone | tel |
template | tpl |
to | 2 |
user | usr |
value | val |
version | ver |
window | win |
常用前缀
语义 | 命名 |
---|---|
re | 再次执行 |
pre | 之前 |
post | 之后 |
multi | 多项 |
un | 否定 |
per | 每项 |
常用后缀
语义 | 命名 |
---|---|
ed | 过去式 |
ing | 进行时 |
able | 具备能力 |
s / es | 名词复数 |
布局相关
语义 | 命名 |
---|---|
布局 | layout |
主体内容 | container |
头部 | header |
主要部分 | main |
侧边栏 | sidebar |
子容器 | sub- |
包含块 | -wrap |
内部的 | -inner |
外部的 | -outer |
行 | row |
列 | column |
区域 | region / area / section |
底部 | footer |
清除浮动 | clearfix |
项 | item |
组件相关
语义 | 命名 |
---|---|
导航 | nav |
面包屑 | crumb |
菜单 | menu |
选项卡 | tab |
内容 | content |
列表 | list |
排行 | rank |
商标 | logo |
幻灯片 | slide |
提示 | tip / msg / hint |
注册 | register |
弹出框 | dialog / model |
合作伙伴 | partner |
工具条 | toolbar |
标语 | banner |
版权 | copyright |
评论 | comment |
面板 | panel |
手风琴 | accordion |
加载 | loading |
头像 | avatar |
标签 | tag |
表格 | table |
下拉框 | dropdown |
参考文章
点击查看更多内容
5人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦