常见变量命名规范
相信很多 Coder 会遇到一个很头痛的问题,就是变量命名。
反正我就是那种可以在变量命名上纠结半天的人,没错,我是强迫症患者。对于一个“合格”的变量,既能明确表示它的准确意图(前提),也希望可以简短一点。但个人认为还是前者更重要一些。
举个例子,i18n
就是英文单词 internationalization
的“简写”(中间 18 个字母,用 18 表示),表示国际化的意思。起码在开发编程中约定俗成的,至于其他行业是不是这样简写或缩写的,我就不深究了。类似的还有 K8s
,是 Kubernets
的简写。
有意义的命名方式,应成为良好编程习惯的一部分。尽管它不是语言规范的要求,但我认为是非常有必要的。
因此,我会有意识地去记录下来。比如某天,看了某库的源码,它觉得它里面某个变量的命名是 OK 的,可以应用在我平常的项目中,那么我就把它记录下来...
尽管它们算是没什么技术含量的东西,但我也想把它做好,仅此而已...
也有很多人推荐的网站:CODELF,它是从 GitHub、GitLab、Bitbucket 的项目中爬取的。支持中文检索,以前看了下请求接口,好像是利用 Bing Microsoft Translator 接口先将中文转换为英文,然后再进行检索的。我现在很少在上面找变量了...
一、常见简写
例如,表示用户信息的变量,相信绝大多数开发者会使用 userInfo
,而不是 userInformation
(驼峰式非本文讨论范围,忽略)。
全称 | 简写 | 备注 |
---|---|---|
template | tmpl | |
contribution | contrib | |
versus | vs | |
arguments | args | |
international | Intl | |
package | pkg | |
dependencies | deps | |
information | info | |
property | prop | |
properties | props | |
regular expression | regex、regexp、re | |
second | sec | |
memoization | memo | 注意,它与 memorization 不同,区别请看下文。 |
High-Order Component | HOC | |
standard | std | |
corporation | corp | |
First In First Out | FIFO | 先进先出 |
Last In First Out | LIFO | 后进先出 |
temporary | temp、tmp | |
instance | inst | |
asynchronous | async | 异步 |
synchronous | sync | 同步 |
double click | dblclick | |
specification | spec | 规格 |
conference | conf | 会议 |
Read-Eval-Print-Loop | REPL | “读取-求值-输出”循环,一个交互式解释器。 |
Generate Your Projects | GYP、gyp | 一个用来生成项目文件的工具。 |
No Operation | noop | 空操作,在 JavaScript 中一般是无操作的空函数,可作为参数默认值,例如回调函数,以避免代码报错。 |
Request For Comments | RFC | 征求修正意见书 |
picture | pix |
二、常见翻译
中文 | 英文 | 备注 |
---|---|---|
键值对 | key-value map | |
数据结构 | data structures | |
生命周期 | life cycle |
三、常见场景的命名
timerId // setTimeout、setInterval 产生的 Id
四、扩展
1. 关于 Corp.
、Inc.
、Co.,Ltd.
的区别
Corp.
是 Corporation 的缩写,主要是用于大公司集团的后缀。Inc.
是 Incorporation 的缩写,即股份有限公司,意思是“团体、法人组织、公司”。Co.
是 Company 的缩写,无论规模大小,一般指有限责任公司,用得较普遍。Co.,Ltd.
是 Limited Company 的缩写,即有限责任公司。Ltd.
适用于规模较小的企业。英国、加拿大常用的表述方式。
2. memoization
与 memorization
的区别
没错,它们只差在一个字母 r
上,而且都是与“记忆” 相关的,但是有区别的。
memoization
:是计算机科学中的一个概念,是使程序运行更快的一种方法。比如。React 中的 memo 就是它的简写。memorization
:是装进你脑袋里面的。
与之对应的动词就是 memoize
与 memorize
。
3. Node.js REPL
简述
Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
Node 自带了交互式解释器,可以执行以下任务:
- 读取 - 读取用户输入,解析输入的 JavaScript 数据结构并存储在内存中。
- 执行 - 执行输入的数据结构
- 打印 - 输出结果
- 循环 - 循环操作以上步骤直到用户两次按下
Ctrl + C
或⌘ + C
按钮退出。
Node 的交互式解释器可以很好的调试 JavaScript 代码。
4. node-gyp
gyp
(Generate Your Projects,简称 GYP,官网)是一个用来生成项目文件的工具,一开始是设计给 Chromium 项目使用的,后来大家发现比较好用就用到了其他地方。生成项目文件后就可以调用 GCC、VSBuild、Xcode 等编译平台来编译。至于为什么要有 node-gyp
,是由于 Node 程序中需要调用一些其他语言编写的工具甚至是 DLL,需要先编译一下,否则就会有跨平台的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 常见默认端口
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论