深刻浅出Nodejs读书笔记(转)

Node简介

这一章简要介绍了Node,从中能够了解Node的发展历程及其带来的影响和价值。html

为何叫Node?起初,Ryan Dahl称他的项目为web.js,就是一个Web服务器,可是项目的发展超过了他当初单纯开发一个Web服务器的想法,变成构建网络应用的一个基本框架,这样能够在它的基础上构建更多的东西,诸如服务器、客户端、命令行工具等。Node发展为一个强制不共享任何资源的单线程、单进程系统,包括十分适宜网络的库,为构建大型分布式应用程序提供了基础设施,其目标也是成为一个构建快速、可伸缩的网络应用平台。它自身很是简单,经过通讯协议来组织不少Node,很是容易经过扩展来达成构建大型网络应用的目的。每个Node进程都构成这个网络应用中的一个节点,这是它名字所含意义的真谛。 脑图前端

Node简介

模块机制

这一章主要介绍Node的模块机制,从中了解到Node如何实现CommonJS模块和包规范的。在这一章中,咱们详细的解释了模块在引用过程当中的编译、加载规则。另外,咱们还能读到更深度的关于Node自身源代码的组织架构。
CommonJS规范为JavaScript定制了一个美好的愿景—但愿JavaScript可以在任何地方运行。脑图 Node模块机制node

异步I/O

这一章展现了Node中咱们将异步I/O做为主要设计理念的缘由。另外,还会介绍到异步I/O的详细实现过程。 
事件循环是异步实现的核心,它与浏览器中的执行模型基本上保持一致。而向古老的Rhino,尽管是较早就能在服务器运行的JavaScript运行时可是执行模型并不像浏览器采用事件驱动,而是使用像其余语言同样采用同步I/O做为主要模型,这形成它在性能上面没法发挥。Node正是依靠构建了一套完善的高性能异步I/O框架,打破了JavaScript在服务器止步不前的局面。 脑图web

Node异步I/O

异步编程

这一章主要介绍异步编程,其中最多见的异步编程问题介绍,也有详细的解决方案。在这一章中咱们能够接触到Promise、事件、高阶函数是如何进行流程控制的。 (这一章建议多看书)脑图 
Node异步I/O编程

内存控制

这一章主要介绍了Node的内存控制,主要内容有垃圾回收、内存限制、查看内存、内存泄漏、大内存应用等细节。 
Node将JavaScript的主要应用场景帮到了服务器端,相应要考虑的细节也与浏览器端不一样,在服务器端,资源向来是寸土寸金,要为海量用户服务,就使得一切资源都要高效循环利用,须要更严谨为每一份资源做出安排。脑图浏览器

Node内存控制

理解Buffer

这一章主要介绍了前端JavaScript里不能遇到的Buffer。因为Node中会涉及频繁的网络和磁盘I/O,处理字节流数据会是很常见的行为,这部分的场景与纯粹的前端开发彻底不一样。
体会过JavaScript友好字符串操做后,有些开发者可能会造成思惟定势,将Buffer看成字符串来理解。但字符串与Buffer之间有实质性的差别,即Buffer是二进制数据,字符串与Buffer之间存在编码关系。所以,理解Buffer的诸多细节十分必要,对于如何高效处理二进制十分有用。脑图Node理解Buffer安全

网络编程

这一章介绍了Node支持的TCP,UDP,HTTP编程,还讲了有关于Websocket与TSL、HTTPS的介绍。
利用Node能够十分方便地搭建网络服务器,不须要专门的Web服务器做为容器,仅仅须要几行代码就能够构建服务器。Node提供了net、dgram、http、https这4个模块,分别用于处理TCP、UDP、HTTP、HTTPS,适用于服务端和客户端。脑图服务器

Node网络编程

构建Web应用

这一章主要介绍了构建Web应用过程当中用到的大多数技术细节,如数据处理、路由、MVC、模板、RESTful等。 我以为这一章对于我么开发一个Nodejs方面的应用颇有指导性做用,整理本章细节就能够完成一个功能的Web开发框架,这章的目的也就是但愿读者学习过这一章后可以对Node开发带来地图式的启发,在开发Web应用时可以心有轮廓,明了细微。脑图网络

Node构建Web应用

玩转进程

这一章主要介绍Node的多进程技术,以及如何借助多进程方式来提高应用的可用性和性能。从严格意义上面来说,Node并不是真正的单线程架构,在第3章咱们还叙述过Node自身还有必定的I/O线程存在,这些I/O线程由底层libuv处理,这部分线程对于JavaScript开发者是透明的,只在C++扩展开发时才会关注到。JavaScript代码永远运行在V8上,是单线程的。本章将围绕JavaScript部分展开,因此屏蔽底层细节的讨论。脑图 
Node玩转进程架构

测试

这一章主要介绍Node的单元测试和性能测试技巧。测试的意义在于,在用户消费产出的代码以前,开发者首先消费他,给予其重要的质量保证。 
测试包括单元测试、性能测试、安全测试和功能测试等几个方面,本章将从Node实践的角度来介绍单元测试和性能测试。脑图 
Node玩转进程

产品化

“行百里路半九十”,完成产品开发的代码编写后,才完成了项目的第一步。这是一章介绍了将Node产品化所须要的注意到的细节,如项目工程化、代码部署、日志、性能、监控报警、稳定性、异构共存。 对于Node开发者而言,不少其余语言走过的路须要开发者带着

Node特效从新践行一遍。这并非坏事,Node更接近底层使得开发者对于细节的可控性很是高。脑图

Node玩转进程

相关文章
相关标签/搜索