變量(函數)命名最佳實踐
良好命名的必要
- 代码命名是件很头疼的事情,既要
语义化又要简洁,最终目的为了代码的可维护性 - 合适的命名会使代码读起来优雅流畅、耐人寻味,让你的代码如艺术品一般。比如:
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人點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦