Skip to content

jcm0624/nodejs-roadmap

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Node.js 后端工程师学习路径

Node.js 使用了全球最流行的 JavaScript 语言进行开发,并基于性能强悍的 V8 引擎,已经成为目前最热门的服务器开发平台之一。无论你是已经熟悉 JavaScript 的前端工程师,还是其他后端(例如 Java)工程师,抑或是编程新手,Node.js 都有十足的理由值得你学习和探索。

目录

入门

JavaScript 语言基础

JavaScript (简称 JS) 是当今最受欢迎的编程语言。从一开始用来在网页中添加简单的动画和表单检验,到现在用来构建复杂的跨平台客户端应用,以及用 Node.js 搭建后端应用,JavaScript 已经在互联网世界刮起了一股强烈的风暴。掌握好 JavaScript 语言基础,可以说是半只脚踏进了 Web 的世界。

知识点

  1. JavaScript 语法要素
    • 各类语句
      • 循环语句
      • 条件语句
      • Switch 语句
    • 变量与操作符
    • 函数定义
  2. JavaScript 数据类型
    • 五类基本数据类型
      • string
      • number
      • boolean
      • object
      • function
    • 三类object
      • Object
      • Date
      • Array
    • 两类空值
      • undefined
      • null
  3. ECMAScript 6+ 基础知识
    • let & const 变量声明
    • 箭头函数
    • 对象 & 数组解构赋值
    • class 的基本语法和继承
    • Promise 对象

参考资源



Node 基础

Node(或者说 Node.js,两者是等价的)是 JavaScript 的一种运行环境,是一个基于 Chrome V8 引擎建立的一个平台。由于采用了事件驱动、非阻塞 I/O 的模型,Node 能够成为了构建轻量且高效的 Web 应用的理想选择。万丈高楼平地起,掌握如何安装、模块机制、npm 工具链等基础知识对接下来 Node 的学习大有裨益。

知识点

  1. 安装
    • 各平台安装包
    • nvm
  2. 编辑器环境安装
    • VSCode
    • ESLint
    • Prettier
  3. 模块机制
    • CommonJS 规范
    • require、module 和 exports
  4. npm
    • 基本命令
    • package.json
    • 切换 npm 源
    • npm scripts
  5. 全局对象
    • process 对象
    • Buffer 对象
  6. 事件

实战教程

参考资源



HTTP 协议

HTTP是一种能够获取如 HTML 这样的网络资源的 protocol(通讯协议)。它是在 Web 上进行数据交换的基础,是一种 client-server 协议,也就是说,请求通常是由像浏览器这样的接受方发起的。一个完整的Web文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。

知识点

  1. HTTP 的概念
  2. HTTP 的特点
    • 无连接
    • 无状态
  3. 客户端向服务端发起请求的过程
    • 三次握手
  4. 请求报文的内容格式
    • 请求方法(GET、POST、PUT 等等)
    • 请求路径(URL/URI)
    • 请求头部及常见字段
  5. 响应报文的内容格式
    • 状态码
    • 响应头部及常见字段
  6. 常见的数据交换格式
    • JSON
    • Form 表单数据
    • XML

参考资源

进阶

异步编程

Node.js 为异步而生,这也是它处理数据密集型实时应用(Data-intensive Real-time,DIRT)如此高效的原因。从浏览器端 JS 发源而来的事件机制与回调函数,到 ECMAScript 隆重推出的 Promise,Node.js 实现异步逻辑的方式也越来越现代化。这一节中,你将学会 Node.js 实现异步逻辑的各种方式,并且学会通过性能测试的方式,让你的 Node 代码更加高效。

知识点

  1. 异步 I/O 与原生事件循环
  2. 回调函数,以及 async 库的优化
  3. Promise 与 async/await
  4. 性能测试与调优

实战教程

  • ✍️《Node.js 异步编程指北》 🗝知识点 1、2、3、4

参考资源



Web 后端开发

毫不夸张的说,Node 就是为 Web 而生的平台,其核心是由 Ryan Dahl 用 1500 行经过高度优化的 C 代码实现的流式 HTTP 解析器。如何用 Node 构建既健壮又高效的 Web 服务器应用,几乎是每个 Node 程序员的必修课。后端开发常用框架包括 Express 和 Koa,可任选其一进行学习。

知识点

  1. 路由的概念与定义
    • 路由的组成:HTTP 方法 + URI
    • 嵌套路由的实现
    • 动态路由的实现
  2. 中间件
    • 中间件的概念
    • 使用第三方中间件
    • 编写自定义中间件
  3. 模板引擎的使用
    • 模板引擎的语法(可选用 HandlebarsPug 等)
    • 在服务器框架中接入模板引擎,渲染页面
  4. RESTful API 的开发
    • 了解 HTTP 规范
    • 了解最常见的四个方法(GET、POST、PUT、DELETE)的含义
    • 在框架中响应不同的 HTTP 方法
  5. 关系型数据库的接入(例如 MySQL)
    • 连接数据库,包括鉴权与重连机制
    • 定义数据模型
    • 实现增删改查
  6. 文档型数据库的接入(例如 MongoDB)
    • 连接数据库,包括鉴权与重连机制
    • 定义数据模型
    • 实现增删改查
  7. 集成 Redis 数据库

实战教程

参考资源



自动化测试

自动化测试往往被忽视,但却是保障软件质量的关键一环。自动化测试解决了手工测试的繁琐、枯燥、易错的问题,让开发者能够专注于写出高质量的软件,同时也大大改善了团队协作的流程。自动化测试主要包括单元测试和集成测试(或称功能测试、验收测试等等),同时也涵盖了测试覆盖率、持续集成等知识点。

知识点

  1. 单元测试
    • 测试驱动开发(TDD)的概念
    • 行为驱动开发(BDD)的概念
    • 了解常用的测试框架(MochaJestJasmine 等等)
    • 了解常用的断言库(内置 assert 模块、Chaiunit.js 等等)
    • 利用测试框架和断言库为 Node 模块编写单元测试
  2. 集成测试
    • 了解浏览器自动化测试
    • 利用 KarmaTestcafe 进行集成测试
  3. 测试覆盖率
    • 了解测试覆盖率的意义
    • 通过 CodecovJest(自带)或 Istanbul 生成测试覆盖率报告
  4. 持续集成
    • 了解持续集成的意义
    • 了解常见的持续集成工具/平台(例如 Travis CICircle CIGitHub Action
    • 配置持续集成,接入项目开发流程

实战教程

  • ✍️《一杯茶的时间,上手 Mocha 单元测试》 🗝知识点 1, 4
  • ✍️《一杯茶的时间,上手 Karma 浏览器测试》 🗝知识点 2, 4

参考资源



实时应用开发

🛠筹备中,敬请期待


应用部署

🛠筹备中,敬请期待

前沿


GraphQL 服务开发

🛠筹备中,敬请期待

About

【🔥持续更新中】Node.js 实战学习路线

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors