《深入浅出node.js(朴灵)》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230062563

内容简介

《深入浅出Node.js》从不同的视角介绍了Node内在的特点和结构。由首章Node介绍为索引,涉及Node的各个方面,主要内容包含模块机制的揭示、异步I/O实现原理的展现、异步编程的探讨、内存控制的介绍、二进制数据Buffer的细节、Node中的网络编程基础、Node中的Web开发、进程间的消息传递、Node测试以及通过Node构建产品需要的注意事项。最后的附录介绍了Node的安装、调试、编码规范和NPM仓库等事宜。

作者简介

朴灵,真名田永强,文艺型码农,就职于阿里巴巴数据平台,资深工程师,Node.js布道者,写了多篇文章介绍Node.js的细节。活跃于CNode社区,是线下会议NodeParty的组织者和JSConfChina(沪JS和京JS)的组织者之一。热爱开源,多个Node.js模块的作者。叩首问路,码梦为生。

目录

第1章 Node简介 
  1.1 Node的诞生历程 
  1.2 Node的命名与起源 
  1.2.1 为什么是JavaScript 
  1.2.2 为什么叫Node
  1.3 Node给JavaScript带来的意义 
  1.4 Node的特点 
  1.4.1 异步I/O 
  1.4.2 事件与回调函数 
  1.4.3 单线程 
  1.4.4 跨平台 
  1.5 Node的应用场景 
  1.5.1 I/O密集型 
  1.5.2 是否不擅长CPU密集型业务 
  1.5.3 与遗留系统和平共处 
  1.5.4 分布式应用 
  1.6 Node的使用者 
  1.7 参考资源

第2章 模块机制 
  2.1 CommonJS规范 
  2.1.1 CommonJS的出发点 
  2.1.2 CommonJS的模块规范 
  2.2 Node的模块实现 
  2.2.1 优先从缓存加载 
  2.2.2 路径分析和文件定位 
  2.2.3 模块编译 
  2.3 核心模块 
  2.3.1 JavaScript核心模块的编译过程 
  2.3.2 C/C++核心模块的编译过程 
  2.3.3 核心模块的引入流程 
  2.3.4 编写核心模块 
  2.4 C/C++扩展模块 
  2.4.1 前提条件 
  2.4.2 C/C++扩展模块的编写 
  2.4.3 C/C++扩展模块的编译 
  2.4.4 C/C++扩展模块的加载 
  2.5 模块调用栈 
  2.6 包与NPM 
  2.6.1 包结构 
  2.6.2 包描述文件与NPM 
  2.6.3 NPM常用功能 
  2.6.4 局域NPM 
  2.6.5 NPM潜在问题 
  2.7 前后端共用模块 
  2.7.1 模块的侧重点 
  2.7.2 AMD规范 
  2.7.3 CMD规范 
  2.7.4 兼容多种模块规范 
  2.8 总结 
  2.9 参考资源

第3章 异步I/O 
  3.1 为什么要异步I/O 
  3.1.1 用户体验 
  3.1.2 资源分配 
  3.2 异步I/O实现现状 
  3.2.1 异步I/O与非阻塞I/O 
  3.2.2 理想的非阻塞异步I/O 
  3.2.3 现实的异步I/O 
  3.3 Node的异步I/O 
  3.3.1 事件循环 
  3.3.2 观察者 
  3.3.3 请求对象 
  3.3.4 执行回调 
  3.3.5 小结 
  3.4 非I/O的异步API 
  3.4.1 定时器 
  3.4.2 process.nextTick() 
  3.4.3 setImmediate() 
  3.5 事件驱动与高性能服务器 
  3.6 总结 
  3.7 参考资源

第4章 异步编程 
  4.1 函数式编程 
  4.1.1 高阶函数 
  4.1.2 偏函数用法 
  4.2 异步编程的优势与难点 
  4.2.1 优势 
  4.2.2 难点 
  4.3 异步编程解决方案 
  4.3.1 事件发布/订阅模式 
  4.3.2 Promise/Deferred模式 
  4.3.3 流程控制库 
  4.4 异步并发控制 
  4.4.1 bagpipe的解决方案 
  4.4.2 async的解决方案 
  4.5 总结 
  4.6 参考资源

第5章 内存控制 
  5.1 V8的垃圾回收机制与内存限制 
  5.1.1 Node与V8 
  5.1.2 V8的内存限制 
  5.1.3 V8的对象分配 
  5.1.4 V8的垃圾回收机制 
  5.1.5 查看垃圾回收日志 
  5.2 高效使用内存 
  5.2.1 作用域 
  5.2.2 闭包 
  5.2.3 小结 
  5.3 内存指标 
  5.3.1 查看内存使用情况 
  5.3.2 堆外内存 
  5.3.3 小结 
  5.4 内存泄漏 
  5.4.1 慎将内存当做缓存 
  5.4.2 关注队列状态 
  5.5 内存泄漏排查 
  5.5.1 node-heapdump 
  5.5.2 node-memwatch 
  5.5.3 小结 
  5.6 大内存应用 
  5.7 总结 
  5.8 参考资源

第6章 理解Buffer 
  6.1 Buffer结构 
  6.1.1 模块结构 
  6.1.2 Buffer对象 
  6.1.3 Buffer内存分配 
  6.2 Buffer的转换 
  6.2.1 字符串转Buffer 
  6.2.2 Buffer转字符串 
  6.2.3 Buffer不支持的编码类型 
  6.3 Buffer的拼接 
  6.3.1 乱码是如何产生的 
  6.3.2 setEncoding()与string_decoder() 
  6.3.3 正确拼接Buffer 
  6.4 Buffer与性能 
  6.5 总结 
  6.6 参考资源

第7章 网络编程 
  7.1 构建TCP服务 
  7.1.1 TCP 
  7.1.2 创建TCP服务器端 
  7.1.3 TCP服务的事件 
  7.2 构建UDP服务 
  7.2.1 创建UDP套接字 
  7.2.2 创建UDP服务器端 
  7.2.3 创建UDP客户端 
  7.2.4 UDP套接字事件 
  7.3 构建HTTP服务 
  7.3.1 HTTP 
  7.3.2 http模块 
  7.3.3 HTTP客户端 
  7.4 构建WebSocket服务 
  7.4.1 WebSocket握手 
  7.4.2 WebSocket数据传输 
  7.4.3 小结 
  7.5 网络服务与安全 
  7.5.1 TLS/SSL 
  7.5.2 TLS服务 
  7.5.3 HTTPS服务 
  7.6 总结 
  7.7 参考资源

第8章 构建Web应用 
  8.1 基础功能 
  8.1.1 请求方法 
  8.1.2 路径解析 
  8.1.3 查询字符串 
  8.1.4 Cookie 
  8.1.5 Session 
  8.1.6 缓存 
  8.1.7 Basic认证 
  8.2 数据上传 
  8.2.1 表单数据 
  8.2.2 其他格式 
  8.2.3 附件上传 
  8.2.4 数据上传与安全 
  8.3 路由解析 
  8.3.1 文件路径型 
  8.3.2 MVC 
  8.3.3 RESTful 
  8.4 中间件 
  8.4.1 异常处理 
  8.4.2 中间件与性能 
  8.4.3 小结 
  8.5 页面渲染 
  8.5.1 内容响应 
  8.5.2 视图渲染 
  8.5.3 模板 
  8.5.4 Bigpipe 
  8.6 总结 
  8.7 参考资源

第9章 玩转进程 
  9.1 服务模型的变迁 
  9.1.1 石器时代:同步 
  9.1.2 青铜时代:复制进程 
  9.1.3 白银时代:多线程 
  9.1.4 黄金时代:事件驱动 
  9.2 多进程架构 
  9.2.1 创建子进程 
  9.2.2 进程间通信 
  9.2.3 句柄传递 
  9.2.4 小结 
  9.3 集群稳定之路 
  9.3.1 进程事件 
  9.3.2 自动重启 
  9.3.3 负载均衡 
  9.3.4 状态共享 
  9.4 Cluster模块 
  9.4.1 Cluster工作原理 
  9.4.2 Cluster事件 
  9.5 总结 
  9.6 参考资源

第10章 测试 
  10.1 单元测试 
  10.1.1 单元测试的意义 
  10.1.2 单元测试介绍 
  10.1.3 工程化与自动化 
  10.1.4 小结 
  10.2 性能测试 
  10.2.1 基准测试 
  10.2.2 压力测试 
  10.2.3 基准测试驱动开发 
  10.2.4 测试数据与业务数据的转换 
  10.3 总结 
  10.4 参考资源

第11章 产品化 
  11.1 项目工程化 
  11.1.1 目录结构 
  11.1.2 构建工具 
  11.1.3 编码规范 
  11.1.4 代码审查 
  11.2 部署流程 
  11.2.1 部署环境 
  11.2.2 部署操作 
  11.3 性能 
  11.3.1 动静分离 
  11.3.2 启用缓存 
  11.3.3 多进程架构 
  11.3.4 读写分离 
  11.4 日志 
  11.4.1 访问日志 
  11.4.2 异常日志 
  11.4.3 日志与数据库 
  11.4.4 分割日志 
  11.4.5 小结 
  11.5 监控报警 
  11.5.1 监控 
  11.5.2 报警的实现 
  11.5.3 监控系统的稳定性 
  11.6 稳定性 
  11.7 异构共存 
  11.8 总结 
  11.9 参考资源

附录A 安装Node 
  A.1 Windows系统下的Node安装 
  A.2 Mac系统下Node的安装 
  A.3 Linux系统下Node的安装 
  A.4 总结 
  A.5 参考资源

附录B 调试Node 
  B.1 Debugger 
  B.2 Node
Inspector 
  B.2.1 安装Node
Inspector 
  B.2.2 错误堆栈 
  B.3 总结

附录C Node编码规范 
  C.1 根源 
  C.2 编码规范 
  C.2.1 空格与格式 
  C.2.2 命名规范 
  C.2.3 比较操作 
  C.2.4 字面量 
  C.2.5 作用域 
  C.2.6 数组与对象 
  C.2.7 异步 
  C.2.8 类与模块 
  C.2.9 注解规范 
  C.3 最佳实践 
  C.3.1 冲突的解决原则 
  C.3.2 给编辑器设置检测工具 
  C.3.3 版本控制中的hook 
  C.3.4 持续集成 
  C.4 总结 
  C.5 参考资源

附录D 搭建局域NPM仓库 
  D.1 NPM仓库的安装 
  D.1.1 安装Erlang和CouchDB 
  D.1.2 搭建NPM仓库 
  D.2 高阶应用 
  D.2.1 镜像仓库 
  D.2.2 私有模块应用 
  D.2.3 纯私有仓库 
  D.3 总结 
  D.4 参考资源

下载地址:https://page81.ctfile.com/fs/3990681-216911200

更多书单和推荐电子书请关注我的新浪博客http://blog.sina.com.cn/u/3283485963
《深入浅出node.js(朴灵)》【PDF】下载链接:
https://u253469.pipipan.com/fs/253469-230062563

更多书单和推荐电子书请关注:
http://zhaozhiyong.cn

《深入浅出node.js(朴灵)》【PDF】下载的更多相关文章

  1. 《决战大数据:驾驭未来商业的利器》【PDF】下载

    内容简介 大数据时代的来临,给当今的商业带来了极大的冲击,多数电商人无不"谈大数据色变",并呈现出一种观望.迷茫.手足无措的状态.车品觉,作为一名经验丰富的电商人,在敬畏大数据的同 ...

  2. 大数据时代的图表可视化利器——highcharts,D3和百度的echarts

    大数据时代的图表可视化利器——highcharts,D3和百度的echarts https://blog.csdn.net/minidrupal/article/details/42153941   ...

  3. 决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试

    决战大数据之三-Apache ZooKeeper Standalone及复制模式安装及测试 [TOC] Apache ZooKeeper 单机模式安装 创建hadoop用户&赋予sudo权限, ...

  4. 决战大数据之二:CentOS 7 最新JDK 8安装

    决战大数据之二:CentOS 7 最新JDK 8安装 [TOC] 修改hostname # hostnamectl set-hostname node1 --static # reboot now 重 ...

  5. 学习推荐《零起点Python大数据与量化交易》中文PDF+源代码

    学习量化交易推荐学习国内关于Python大数据与量化交易的原创图书<零起点Python大数据与量化交易>. 配合zwPython开发平台和zwQuant开源量化软件学习,是一套完整的大数据 ...

  6. asp.net大数据导出execl实现分开压缩并下载

    asp.net大数据导出execl实现分开压缩并下载 /// <summary> /// 导出数据到EXCEL 多个表的 /// </summary> /// <para ...

  7. 基于Greenplum Hadoop分布式平台的大数据解决方案及商业应用案例剖析

    随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ...

  8. 关于大数据时代传统商业存储的思考: 中心存储 VS 分布式存储

    尊重原创,转载请注明出处:http://anzhan.me ; http://blog.csdn.net/anzhsoft 今天和我们部门的老大1*1, 大家面对面沟通了一下到新的项目组的想法.而且也 ...

  9. cloudera cdh6.3 离线安装 经典大数据平台视频教程(含网盘下载地址)

    cdh6.3企业级大数据视频教程 链接:https://pan.baidu.com/s/1bLGrIwzpFQB-pQRb6KOmNg 提取码:i8h8 系统和软件版本1,操作系统:Centos7.6 ...

  10. 大数据之路week06--day01(VMware的下载与安装、安装CentOS)

    好了,从今天开始就开始正式的进入大数据道路的轨道上了,当然了,Java 也是需要不断地在日后进行反复地学习,熟练掌握.(这里我要说一下,Java种还有一些I/O流.Lambda表达式和一些常用工具类有 ...

随机推荐

  1. From missionary to firebrand--Eisle Tu [20160102]

    From missionary to firebrand   杜叶锡恩(1913年(癸丑年)-2015年(乙未年),英文名字Elsie Hume Elliot Tu,丈夫是教育家杜学魁.她是香港著名的 ...

  2. 学会WCF之试错法——安全配置报错分析

    安全配置报错分析 服务端配置 <system.serviceModel> <bindings> <wsHttpBinding> <binding name = ...

  3. 《Linux命令行与shell脚本编程大全》第十三章 更多的结构化命令

    本章讨论bash shell的循环命令for.while和until 13.1 for命令 重复执行一系列命令在编程中很常见. bash shell提供了for命令,允许你创建一个遍历一系列值的循环. ...

  4. 容易被忽视的后端服务 chunked 性能问题

    容易被忽视的后端服务 chunked 性能问题 标签(空格分隔): springboot springmvc chunked 背景 spring boot 创建的默认 spring mvc 项目 集成 ...

  5. socket.io 入门篇(三)

    本文原文地址:https://www.limitcode.com/detail/5926e3a056fba70278bf2044.html 前言 上篇我们介绍了 socket.io 中room的概念和 ...

  6. nodejs+mongoose+websocket搭建xxx聊天室

    简介 本文是由nodejs+mongoose+websocket打造的一个即时聊天系统:本来打算开发一个类似于网页QQ类似功能的聊天系统,但是目前只是开发了一个模块功能 --- 类似群聊的,即一对多的 ...

  7. web离线应用--applicationCache

    applicationCache是html5新增的一个离线应用功能 离线浏览: 用户可以在离线状态下浏览网站内容. 更快的速度: 因为数据被存储在本地,所以速度会更快. 减轻服务器的负载: 浏览器只会 ...

  8. c# AutoMapper 使用方式

    安装方式:使用vs自带的nuget管理工具,搜索AutoMapper ,选择第一个安装到你的项目即可. 我从网上找了一些资料,下载了个demo,然后自己又写了一遍,我把AutoMapper 的使用分为 ...

  9. apache mysql无法启动解决办法

    最近在调试几个代码,需要不停的启动关闭服务器和mysql.在连续的几次开关后,无法启动了,每次启动后就直接关闭. 刚开始是怀疑是不是端口被占用了,查看端口后,并没有端口被占用的情况.查看mysql错误 ...

  10. 简单购物车程序(Python)

    #简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...