常见变量命名

简介: 常见变量命名

前言


23.webp.jpg


相信很多 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 征求修正意见书


二、常见翻译


中文 英文 备注
键值对 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 的作用是什么?


目录
相关文章
|
Java Nacos
对于Nacos 2.x版本,默认是通过gRPC协议进行通信的
对于Nacos 2.x版本,默认是通过gRPC协议进行通信的
1457 7
|
数据可视化 图形学 UED
3dMax2023序列号密钥激活补丁
3D Max 2023已经正式发布了,由Autodesk公司开发的一款专业高效的三维制作软件,集三维建模、动画和渲染三大功能于一体,目前广泛应用于工业设计、建筑设计、三维动画、广告、影视、多媒体制作、游戏、辅助教学以及工程可视化等领域。我还是比较习惯用2023的版本。Autodesk 3ds Max 2023激活补丁分享!
6844 0
|
easyexcel 索引
easyexcel读取合并单元格
easyexcel读取合并单元格
6139 1
easyexcel读取合并单元格
|
Arthas Java 测试技术
记一次使用 Arthas 热更新线上代码
引用参考第二条 - Arthas提醒您:诊断千万条,规范第一条,热更不规范,同事两行泪
2252 0
记一次使用 Arthas 热更新线上代码
|
Java Go Nacos
解决`java.lang.NoClassDefFoundError`在Nacos和Spring Boot集成中的问题
解决`java.lang.NoClassDefFoundError`在Nacos和Spring Boot集成中的问题
900 0
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
1119 3
|
8月前
|
JSON 搜索推荐 数据挖掘
Temu商品列表数据接口(Temu API系列)
Temu作为新兴跨境电商平台,为全球卖家和消费者搭建便捷交易桥梁。通过商品列表数据接口,开发者、分析师可获取商品名称、价格、销量等信息,助力市场调研、商品管理和数据分析。接口支持HTTP GET请求,参数包括品类、价格区间、排序方式等,响应格式为JSON。Python示例代码展示了如何调用API获取数据,应用场景涵盖竞争对手分析、选品参考、销售预测及个性化推荐系统开发等。
2241 24
|
12月前
|
JavaScript 开发者 UED
数据驱动方式的优缺点
【10月更文挑战第13天】 数据驱动是软件开发中,特别是在 Vue 等框架中的一种重要理念。它通过数据绑定简化代码结构,提高开发效率和可维护性,增强用户体验,促进团队协作,并提升性能和灵活性。然而,也存在初始学习成本高、数据绑定复杂、内存管理问题及调试难度大等挑战。总体而言,数据驱动在现代应用开发中具有显著优势,但也需谨慎应对潜在问题。
|
边缘计算 网络虚拟化 虚拟化
虚拟网络设备性能优化
在现代网络架构中,虚拟网络设备扮演着越来越重要的角色🌐,特别是在云计算☁️和容器化技术📦广泛应用的背景下。虚拟网络设备如虚拟以太网设备(veth)、虚拟交换机(vSwitch)、和虚拟路由器等,提供了灵活的网络连接和隔离方案🔗。然而,与物理网络设备相比,虚拟网络设备在处理能力💪、带宽利用率📈和延迟⏳方面可能存在性能瓶颈。因此,性能优化成为了虚拟网络设备管理中的一个重要议题🛠️。本文将探讨虚拟网络设备的性能优化手段,帮助网络管理员更有效地利用这些设备。
|
XML JSON Java
通过 Feign 进行文件上传
通过 Feign 进行文件上传
695 7