常见变量命名规范

发布于 2023-05-05 22:23:32 字数 5665 浏览 67 评论 0

相信很多 Coder 会遇到一个很头痛的问题,就是变量命名。

反正我就是那种可以在变量命名上纠结半天的人,没错,我是强迫症患者。对于一个“合格”的变量,既能明确表示它的准确意图(前提),也希望可以简短一点。但个人认为还是前者更重要一些。

举个例子,i18n 就是英文单词 internationalization 的“简写”(中间 18 个字母,用 18 表示),表示国际化的意思。起码在开发编程中约定俗成的,至于其他行业是不是这样简写或缩写的,我就不深究了。类似的还有 K8s,是 Kubernets 的简写。

有意义的命名方式,应成为良好编程习惯的一部分。尽管它不是语言规范的要求,但我认为是非常有必要的。

因此,我会有意识地去记录下来。比如某天,看了某库的源码,它觉得它里面某个变量的命名是 OK 的,可以应用在我平常的项目中,那么我就把它记录下来...

尽管它们算是没什么技术含量的东西,但我也想把它做好,仅此而已...

也有很多人推荐的网站:CODELF,它是从 GitHub、GitLab、Bitbucket 的项目中爬取的。支持中文检索,以前看了下请求接口,好像是利用 Bing Microsoft Translator 接口先将中文转换为英文,然后再进行检索的。我现在很少在上面找变量了...

一、常见简写

例如,表示用户信息的变量,相信绝大多数开发者会使用 userInfo,而不是 userInformation(驼峰式非本文讨论范围,忽略)。

全称简写备注
templatetmpl 
contributioncontrib 
versusvs 
argumentsargs 
internationalIntl 
packagepkg 
dependenciesdeps 
informationinfo 
propertyprop 
propertiesprops 
regular expressionregex、regexp、re 
secondsec 
memoizationmemo注意,它与 memorization 不同,区别请看下文。
High-Order ComponentHOC 
standardstd 
corporationcorp 
First In First OutFIFO先进先出
Last In First OutLIFO后进先出
temporarytemp、tmp 
instanceinst 
asynchronousasync异步
synchronoussync同步
double clickdblclick 
specificationspec规格
conferenceconf会议
Read-Eval-Print-LoopREPL“读取-求值-输出”循环,一个交互式解释器。
Generate Your ProjectsGYP、gyp一个用来生成项目文件的工具。
No Operationnoop空操作,在 JavaScript 中一般是无操作的空函数,可作为参数默认值,例如回调函数,以避免代码报错。
Request For CommentsRFC征求修正意见书
picturepix 

二、常见翻译

中文英文备注
键值对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. memoizationmemorization 的区别

没错,它们只差在一个字母 r 上,而且都是与“记忆” 相关的,但是有区别的。

  • memoization:是计算机科学中的一个概念,是使程序运行更快的一种方法。比如。React 中的 memo 就是它的简写。
  • memorization:是装进你脑袋里面的。

与之对应的动词就是 memoizememorize

详见:什么是 Memoization ?

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,需要先编译一下,否则就会有跨平台的问题。

参考:node-gyp 的作用是什么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

久夏青

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

懂王

文章 0 评论 0

清秋悲枫

文章 0 评论 0

niceone-tech

文章 0 评论 0

小伙你站住

文章 0 评论 0

刘涛

文章 0 评论 0

南街九尾狐

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文