Node.js技术体系概览 |
Node 旨在解决什么问题?
Node 工作的原理?
服务器端的JavaScript的商业意义是什么?
Node.js结构和运行解析
Node.js应用案例回顾 |
Node.js一个案例剖析 |
从客户端到服务端的请求与响应
服务器处理内容
服务器处理过程
Node.js都做了什么
Node.js的基本开发框架
理解Node.js的能力范围 |
Node.js的模块机制 |
CommonJS的模块规范
Node的模块实现
优先从缓存加载
路径分析和文件定位
模块编译
核心模块
JavaScript核心模块的编译过程
C/C++核心模块的编译过程
核心模块的引入流程
编写核心模块
C/C++扩展模块
模块调用栈
包与NPM
前后端共用模块 |
Node.js的异步I/O |
为什么要异步I/O
异步I/O实现现状
异步I/O与非阻塞I/O
理想的非阻塞异步I/O
现实的异步I/O
Node的异步I/O
事件循环
观察者
请求对象
执行回调
非I/O的异步API
定时器
process.nextTick()
setImmediate()
事件驱动与高性能服务器 |
Node.js的异步编程 |
函数式编程
高阶函数
偏函数用法
异步编程的优势与难点
异步编程解决方案
事件发布/订阅模式
Promise/Deferred模式
流程控制库
异步并发控制
bagpipe的解决方案
async的解决方案 |
Node.js的内存控制 |
V8的垃圾回收机制与内存限制
高效使用内存
内存指标
内存泄漏
慎将内存当做缓存
关注队列状态
内存泄漏排查
node-heapdump
node-memwatch
大内存应用 |
Node.js的网络编程 |
构建TCP服务
构建UDP服务
构建HTTP服务
构建WebSocket服务
网络服务与安全
TLS/SSL
TLS服务
HTTPS服务 |
基于Node.js构建Web应用 |
基础功能
请求方法
路径解析
查询字符串
Cookie
Session
缓存
Basic认证
数据上传
表单数据
其他格式
附件上传
数据上传与安全
路由解析
文件路径型
MVC
RESTful
中间件
异常处理
中间件与性能
页面渲染
内容响应
视图渲染
模板
Bigpipe |
Node.js的进程与集群 |
服务模型的变迁
同步
复制进程
多线程
事件驱动
多进程架构
创建子进程
进程间通信
句柄传递
集群稳定之路
进程事件
自动重启
负载均衡
状态共享
Cluster模块
Cluster工作原理
Cluster事件 |
Node.js应用案例实践、评测与优化 |
需求分析
客户端和服务端协作分析
服务端功能分析
客户端功能分析
架构设计
基于Node.js的模块设计
模块接口和交互设计
规划模块结构
规划模块加载时机
运行时过程设计
进程划分
进程之间的通信设计
采用集群
实现
服务端模块开发
客户端开发
测试与验证
功能交互验证
性能评测
可靠性评测
性能优化
数据结构优化
模块重构
内存优化
进程优化 |
课程总结 |
Node.js开发技术汇总
各种技术的关系和接口 |