哈Ha!我决定触及使用Javascript命名实体的主题。在工作中,我与实习生进行了很多互动,并且已经看到了足够多的东西。因此,我认为最好只收一小笔便笺,以收集JavaScript社区今天采用的命名实体规则。也许我没有收集所有东西,所以如果您在评论中补充我,我将不胜感激。实体命名
命名在软件开发中非常重要。众所周知,该代码主要是为将要阅读的人员(对于程序员)编写的。错误的命名会由于花费更多的时间阅读代码而大大增加开发或支持项目的人工成本,因为 如果命名不正确,则很难解释“代码中的内容”。名称的语法形式不同,有很多,有些不再使用。以下是js中最常见的代码:- 骆驼符号(CamelCase):MyClass
- Snake_case:my_const
- 烧烤符号(kebab-case):我的数据
选择案例时,重要的是要考虑当前接受的标准。今天在js 中,不接受snake_case和kebab -case,但是可以在Python或Ruby中找到它们。单字母标识符
机构通常在代码中使用单字母标识符。我在高中毕业的一半学生中看到了这种编码风格。这是一种非常恶毒的做法。该名称应清楚地描述其本质。如今,使用单字母标识符是一个不好的信号。计数器和索引可能是例外,即 一个字母足以表达其本质的情况。以名称翻译
使用音译在学生中也很受欢迎。当然,这也是不良品味和错误代码的标志。命名中不应音译,因为 编程中的通用语言是英语。在开发代码时,我们必须使用任何国家/地区的专业人员都知道的国际语言。俄语音译不适用于这些音译。命名变量和类
变量的名称为lower camelCase
:const maxCount = 10;
类的名称为CamelCase
:class EnumerableCollection {
}
动作
使用动词命名动作(例如,函数)非常重要。您需要选择这样的动词。对应于动作类型。例如:const checkNumberIsEven = (number) => (number % 2 === 0);
checkNumberIsEven
是个好名字。立即清楚的是,该功能检查数字是否为奇偶校验。也是个好名字 isEven
-如果此函数位于/helpers/number.js中,那么即使这样的短名称也绰绰有余,因为目录本身告诉我们它包含用于处理数字的功能。(但即使在这里,您也可以使用第一个选项,因为在使用此功能的文件中,可能会有很多代码,并且调用可以位于中间。)函数是远远总是动作,但同样重要的是明白这一点。例如,const arifmeticalProgression = (start, depth, maxLength = 10) => {
const progression = [start];
const iter = (acc) => {
if (acc.length >= maxLength) {
return acc;
}
const newIndex = acc.length;
const newItem = start + newIndex * depth;
const newProgresion = [].concat(acc, newItem);
return iter(newProgresion);
};
return iter(progression);
};
此函数生成算术级数,但不是动作,因为 考虑到其声明性,考虑了算术级数的定义。能够区分这一刻很重要。这也包括定义常量的函数。const defaultCollection = () => ([]);
谓词
上面我们讨论了功能const checkNumberIsEven = (number) => (number % 2 === 0);
这种功能称为谓词。谓词是关于某种事物的陈述。所谓的功能是运行检查“本质是某物”。编程谓词始终返回布尔值。作为一项规则,谓词通过英语助动词的第三人称单数形式提及是,即 是。const isEven = (number) => (number % 2 === 0);
一些谓词确定实体中所需元素(属性或方法或项'a)的出现(存在)。这样的谓词。通常以英语动词has开头(第三人称单数动词have)。例如,一个安全的表格Object.prototype.hasOwnProperty
可能如下所示:const hasProp = (obj, key) => (Object.prototype.hasOwnProperty.call(obj, key));
如果实体是某物的数量,则应count
在名称中使用单词。