【Express.js】代码规范

代码规范

编程规范,对于一个优秀的项目是不可或缺的,有了良好的代码规范,有益于项目的维护与拓展。

命名规范

命名的第一要义是明了,要让阅读者看到命名就能大概猜测出其意义或用处。

以用户身份(userRole)为例,不可过度简略为 "ur",本身这个单词也不算长,拼全 "userRole" 即可,或者 "uRole",因为字母 "u" 通常代表用户,这是约定俗成的。

命名规范可以跟据被命名的目标再细分:

变量命名

可变变量通常用 let 声明,命名时可以采取首字母小写的驼峰(userRole)或者小写蛇形命名法(user_role);常量变量通常用 const 声明,命名时通常采用全大写(USERROLE)或者大写蛇形命名法(USER_ROLE)

函数命名

独立的函数或者作为成员变量的方法,命名通常采取首字母小写的驼峰(checkUserRole)小写蛇形命名法(check_user_role)

类命名

类、接口或者一系列函数和变量的聚合引入的命令通常采用大写驼峰命令法(User),对其内部私有的量或者方法,由于 js 和 ts 都不存在真正意义上的 private,所以在私有量或方法前加上 _ 短下划线即可,意指这是私有的。此外,在声明类或对象拥有的属性和方法时,要避免冗余的前缀,比如:

js 复制代码
class User {
  userLogin() {
  	//...
  }
}

以上代码的 "userLogin" 就是典型的前缀冗余。

文件命名

文件命名通常采用小写驼峰命名(strUtil.js)或者小写点隔式命名(str.util.js),小写蛇形命名法也不是不行,但在 js 项目中较为罕见。

排版规范

一个统一且整洁的排版也是相当重要的,比如:

  1. 统一的 4空格 或者 2 空格缩进,符号后 1 空格缩进
js 复制代码
const sayHi = () => {
  console.log('Hi, Express Learner!');
}
  1. 同行内逗号分隔后的 1空格缩进
  2. 单文件内不同性质或不同阶段的代码用单空行相隔
  3. 引入依赖或其它文件通常写在文件顶部
  4. 函数多参数下放
typescript 复制代码
function add_10_nums(
  a1: number, b1: number,
  a2: number, b2: number,
  a3: number, b2: number,
  a4: number, b2: number,
  a5: number, b2: number)
{
  return //...
}
  1. 多行对齐

等等...

注释规范

合适的注释有助于自己和他人快速理解并维护一段代码,写注释不必事事具细,比如在意义很明显的 login() 函数上加 // 登录函数 这么一句代码,只需要在比较复杂或者仅靠命名和表面的调用关系即可推断出作用的代码上进行适当的注释即可。此外,现在的主流 IDE 对注释都支持 markdown,可以适当地利用 markdown 语法进行注释增强。

切记注释是给人看的,别把注释格式写的难以阅读,比如长篇大论且挤在一行上。

此外通过注释的 JsDoc 可以对函数的参数、返回,对象的属性等进行类型标注和解释,合理的运用 JsDoc 注释,将使得我们在不使用 TypeScript 的情况下也能获得良好的代码提示。


下一节-高性能

相关推荐
廋到被风吹走1 小时前
【Spring】Spring Data JPA Repository 自动实现机制深度解析
java·后端·spring
MX_93591 小时前
Spring中Bean的配置(一)
java·后端·spring
2503_928411561 小时前
12.4 axios的二次封装-深拷贝
前端·javascript·vue.js
sg_knight5 小时前
Spring 框架中的 SseEmitter 使用详解
java·spring boot·后端·spring·spring cloud·sse·sseemitter
喵个咪8 小时前
初学者入门:用 go-kratos-admin + protoc-gen-typescript-http 快速搭建企业级 Admin 系统
后端·typescript·go
Ndmzi9 小时前
Matlab编程技巧:自定义Simulink菜单(理解补充)
前端·javascript·python
用户214118326360210 小时前
手把手教你用Claude制作专属PPT生成器-从模板学习到自动生成全流程实战
后端
勇气要爆发10 小时前
物种起源—JavaScript原型链详解
开发语言·javascript·原型模式
San30.10 小时前
深入理解 JavaScript OOP:从一个「就地编辑组件」看清封装、状态与原型链
开发语言·前端·javascript·ecmascript
AAA阿giao11 小时前
JavaScript 原型与原型链:从零到精通的深度解析
前端·javascript·原型·原型模式·prototype·原型链