Node.js 技术栈学习指南(含思维导图)

Stella981
• 阅读 734

Node.js 技术栈学习指南(含思维导图)

读过一本好书,像交了一个益友。——臧克家

Node.js 技术栈 是由作者 “五月君” 于 2019 年 4 月梳理之后最早开源于 Github,同时注册了微信公众号「Nodejs技术栈」。本文档包含了作者从事 Node.js Developer 以来的学习历程,旨在为大家提供一个较详细的学习教程,侧重点更倾向于 Node.js 服务端所涉及的技术栈。

也致力于为大家分享最具有价值的 Node.js 相关技术干货,包含 Node.js 基础知识(JavaScript、ES6/ES7/ES8...、TypeScript)、Node.js 核心模块、主流框架实践、缓存、数据库、消息中间件、DevOps、HTTP 协议以及 Node.js 在微服务、分布式领域下的应用分享等。

思维导图

Node.js 技术栈学习指南(含思维导图)

说明:大致方向不会变,中间细节部分之后可能会修改,欢迎关注公众号「Nodejs技术栈」回复 “思维导图” 查看最新版学习指南

目录大纲

  • JavaScript

  • 基础

  • This

  • 函数

  • 对象

  • 原型

  • 正则

  • ES系列

  • sync/await

  • Object.values()

  • Object.entries()

  • includes

  • 指数操作符

  • Let、Const 变量声明

  • 数据类型功能扩展

  • Set、Map 集合

  • 解构赋值

  • 箭头函数

  • Promise

  • Symbol

  • Decorators

  • Generator

  • ES6

  • ES7

  • ES8

  • Node.js 基础

  • Node.js 初识

  • Node.js 发展史

  • 开发环境搭建

  • NPM 包管理器

  • 构建第一个 Hello World 应用程序

  • 初识 Node.js 模块

  • 回调函数/异步编程

  • Node.js 编码风格指南

  • Koa.js 入门

  • Node.js 中应用 MongoDB

  • Node.js 中应用 Redis

  • 基于 Koa.js 的简单 CRUD

  • 统一异常处理

  • 单元测试

  • PM2 部署

  • Node.js 应用场景

  • Node.js 核心模块

  • Module — 模块

  • HTTP / HTTPS / HTTP2

  • Net — 网络

  • Event — 事件

  • Stream — 流

  • Buffer — 缓冲区

  • Crypto — 加密

  • FS — 文件

  • Timer — 定时器

  • Node.js 进阶

  • Memory 内存管理

  • V8 虚拟机

  • I/O 模型

  • EventLoop 事件轮询

  • Threads&Process 线程和进程

  • Testing 测试

  • Schedule 定时任务

  • Template 模版引擎

  • Cache 缓存

  • 性能调优

  • 最佳实战

  • Node.js 框架

  • Express.js

  • Koa.js

  • Egg.js

  • Nest.js

  • Midway.js

  • Meteor.js

  • 数据库

  • Azure CosmosDB

  • Amazon DynamoDB

  • ElasticSearch

  • Solr

  • Sphinx

  • MySql

  • PostgreSQL

  • SQL Server

  • Redis

  • MongoDB

  • CouchDB

  • NoSql

  • 关系型

  • 搜索引擎

  • 云数据库

  • HTTP

  • HTTP 协议发展史

  • 5 层网络模型

  • HTTP 三次握手/四次挥手

  • URI/URL/URN

  • 跨域的形成及解决方案

  • 缓存头 Cache-Control

  • Cookie 与 Session

  • HTTP 长链接

  • HTTP2 协议实践

  • 微服务

  • 可能出现的问题

  • 熔断

  • 限流

  • 服务降级

  • Consul

  • Zookper

  • ResultFul API

  • GraphQL

  • HAL 基于ResultFul协议的提升

  • RPC

  • 消息队列

  • 认识微服务

  • 数据通信

  • 服务注册/发现

  • 柔性可用/容错

  • 消息中间价

  • RabbitMQ

  • RocketMQ

  • Kafka

  • ActiveMQ

  • 分布式

  • 认识分布式

  • 分布式事务

  • 分布式锁

  • 分布式限流

  • 分布式订单号生产策略

  • 分布式系统校验

  • DevOps

  • PM2 生产环境部署

  • Docker

  • Jenkins 持续集成

  • SonarQube 代码质量评测分析

  • Jumpserver 开源堡垒机

  • 安全

  • CSRF

  • XSS

  • 越权

  • Cookies 安全策略

  • HTTP/HTTPS 传输安全

  • SQL 注入

  • 中间人攻击

  • OAuth 2.0

  • 工具

  • Git 版本控制

  • VSCode 编辑器

  • 设计模式

  • 单例模式

  • 工厂模式

  • 装饰器模式

  • 代理模式

  • 适配器模式

  • 观察者模式

  • 数据结构

  • Queue

  • Set

  • List

  • Map

  • Heap - 堆

  • Stack - 栈

  • Graph - 图

  • 二叉树

  • 红黑树

  • 十大排序

  • SOLID 五大原则

  • 单一职责原则

  • 开放封闭原则

  • 里式替换原则

  • 接口分离原则

  • 依赖倒置原则

任重而道远!

资源

本项目开源于 Github: https://github.com/Q-Angelo/Nodejs-Roadmap,同时也会在微信公众号「Nodejs技术栈」进行同步,欢迎关注!如需进群交流的可先关注微信公众号,后台回复“加群”,即可加入「Nodejs技术栈交流群」!

以上部分内容已经完成的可以在 Github 查看,后续也会同步到微信公众号,更多内容还需不断完善,我会朝着这个大纲目标走,如果您有不错的文章欢迎投稿,当然也欢迎分享本公众号的文章让更多的同学能够看到。转载和投稿前请先在公众号后台点击 “阅读更多” -> “转载投稿”查看相关须知内容。

Node.js 技术栈学习指南(含思维导图)

本文分享自微信公众号 - 胡哥有话说(hugeyouhuashuo)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
!(https://oscimg.oschina.net/oscnet/3e08a942dd884e9ab82b63a1f3c4aada.jpg"未命名文件.jpg")Java技术栈不可错过的Java 技术公众号!(https://oscimg.oschina.net/oscnet/00fcff52518e
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Spring Boot 2.1.6 发布了!
!(https://oscimg.oschina.net/oscnet/e5aaab7a5b9f4aa7a944b00aff253ed2.jpg)Java技术栈www.javastack.cn优秀的Java技术公众号(https://www.oschina.net/action/GoToLink?urlhttps%3
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这