在过去的五年里,我一直在不断尝试提高我的编码技能,其中之一就是学习和遵循最推荐的编码风格。
本指南旨在帮助您编写一致且优雅的代码,并包含一些提高代码可读性和可维护性的建议。它的灵感来自于社区中最受接受的流行指南,但进行了一些修改以更适合我的喜好。
值得一提的是,我是一名全栈 JavaScript 开发人员,我的所有笔记都特定于我的技术堆栈(MEVN),可能不适用于其他堆栈。
如果需要在多个地方编写相同的代码块(或具有一些可管理的差异),则必须将它们合并到一个函数中,并且以后只要调用该函数即可需要。
考虑松耦合绝对不会对其他函数产生影响。每个函数应该不知道其他函数的定义,并作为一个单独的组件工作。在这种情况下,它只知道它的参数,无论谁调用该函数,相同的输入总是返回相同的结果。
宣言
当不打算重新分配变量时,请使用 const 关键字。但是,您仍然可以对对象或数组变量使用 const,即使您计划重新分配它们的嵌套元素。
请注意,要求模块并始终使用 const 关键字定义常量变量。
当不能使用 const 时使用 let 关键字,只有在需要支持较旧的浏览器时才使用 var 关键字。
只要有可能,就使箭头函数语法优于传统替代语法。
命名
变量、函数、方法和参数的名称应该是自我描述的,这意味着任何人都应该能够通过查看它们的名称来了解(或至少做出合理的猜测)所包含的数据。
常量变量应大写,单词之间用下划线分隔。函数、变量和方法应遵循驼峰命名法,而 CSS 类和 ID 应遵循短横线命名法。
评论
描述函数的注释不应该写在调用它们的地方,而应该写在定义它们的地方。
对于if语句,注释应放在条件语句之后。
if (conditionIsTrue) { // Put your comment here doSomeThing(); } else { // Put your comment here doSomethingElse(); }请记住,对于单行注释使用双斜杠 //,对于多行注释使用 /* */。在一行代码或条件语句中添加多行注释时,请将其放在 /* */ 内,这样 /* 写在代码前面,注释从下一行开始,*/ 写在新行上线。
if (conditionIsTrue) { // Put your comment here doSomeThing(); } else { // Put your comment here doSomethingElse(); }功能描述性注释
if (conditionIsTrue) { // Put your comment here doSomeThing(); } else { // Put your comment here doSomethingElse(); }
关于带有req和res参数的服务器函数,不需要描述请求参数;仅使用@returns描述来描述响应。/** * 此处描述该函数 * @returns 描述 */ 函数名 = (req, res) => { doSomeThing(); }
if (conditionIsTrue) { // Put your comment here doSomeThing(); } else { // Put your comment here doSomethingElse(); }
一般情况下,req、res、next、to、from参数不需要描述。const calc_result = (firstNumber * secondaryNumber)/* 解释相乘的原因 */thirdNumber;在HTML文件中,使用分隔代码的不同部分;因此用户可以轻松识别每个部分。
如果您在代码行中间写注释,请使用 /* */.
if (conditionIsTrue) { // Put your comment here doSomeThing(); } else { // Put your comment here doSomethingElse(); }缩进
请记住,始终在表达式、运算符和符号周围以及逗号和大括号之后添加空格(如果它们是
而不是 行的最后一个字符。
仅在文件末尾(所有文件都应以空行结尾)、最后导入的模块之后、分隔 Template、Script 和 Style 标记以及 CSS 规则集之间允许(且必需)使用空行。
请记住使用 Tab 进行缩进,使用 Space 进行对齐。
此外,尽管严格遵守这些规则一开始似乎具有挑战性,但经过实践,它会变得更加简单。
封面图片来源:Pexels 的 luis gomes 拍摄
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3