为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 变量(函数)命名最佳实践

变量(函数)命名最佳实践

2017.09.08 15:07 3286浏览

良好命名的必要

  1. 代码命名是件很头疼的事情,既要语义化又要简洁,最终目的为了代码的可维护性
  2. 合适的命名会使代码读起来优雅流畅、耐人寻味,让你的代码如艺术品一般。比如:
    • promise - 异步请求数据时,“承诺”一定会回应(成功或失败),很有画面感
    • on/off - jquery 中表示监听和销毁事件,言简意赅,方便易用
    • fork - github 的 fork 操作,由“叉子”引申为复刻属于自己的分叉,形象生动

良好命名的要点

  1. 使用能够表达意图的名字

    良好命名能够告诉我们它要做什么,为什么存在,以及是如何工作的。选择能够表达意图的名字,有利于我们清楚理解程序含义。相反,名不副实则会误导阅读代码的人,有时需要打断点才能判断出程序的真实功能。

  2. 不要怕在选择名字上花时间

    多尝试几种不同的名字,直到足以描述程序含义,不要害怕在命名上花时间。以后阅读你代码的人(包括自己)会因此受益。而且,一个具有清晰描述性的命名,还有助于你在心中理清模块的设计。良好的命名可能需要花费额外的时间,但是从长远来看,利大于弊。

  3. 类名

    类名应该是个名词或名词词组,如 Customer、Account、AddressParser。父类的命名应该简短,子类的应该详尽,通过形容词来描述其不同于父类之处,如 SavingsAccount 继承自 Account。

  4. 变量名

    变量名一般应该是名词。如果是布尔变量,应写成谓词的形式,如 isEmpty,这样放到if 语句才便于理解。

  5. 方法名

    方法名应该是一个动词或动词词组,如 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

参考文章

awesome-name

每个程序员需掌握的20个代码命名小贴士

计算机变量命名常用词汇包括对仗词

点击查看更多内容
5人点赞

若觉得本文不错,就分享一下吧!

评论

相关文章推荐

正在加载中
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消