若是你想要深刻学习Node,那你不能错过《深刻浅出Node.js》这本书,它从不一样的视角介绍了 Node 内在的特色和结构。由首章Node 介绍为索引,涉及Node 的各个方面,主要内容包含模块机制的揭示、异步I/O 实现原理的展示、异步编程的探讨、内存控制的介绍、二进制数据Buffer 的细节、Node 中的网络编程基础、Node 中的Web 开发、进程间的消息传递、Node 测试以及经过Node 构建产品须要的注意事项。最后的附录介绍了Node 的安装、调试、编码规范和NPM 仓库等事宜。在读这本书的过程当中我收获颇多,并用思惟导图的方式记录下来,方便本身后期温故。若是你恰好没有读过,能够当作度这本书的预习阅读,相信你也会有所收获(思惟导图图片可能有点小,记得点开看)git
本章主要介绍了主流的几种异步编程解决方案,这是目前JavaScript中主要使用的方案。但对 于其余语言而言,还有协程(coroutine)等方式。可是因为Node基于V8的缘由,在目前EMCAScript5 的实现下还不支持协程。这些标准和规范还在制定中,因此暂时不做介绍。将来的V8若是支持 Generator,也将在Node中能直接使用。github
最后,由于人们老是习惯性地以线性的方式进行思考,以至异步编程相对较为难以掌握。这 个世界以异步运行的本质是不会由于你们线性思惟的惯性而改变。就像日出月落不会由于你的心 情而改变其自有的运行轨迹。编程
Node将JavaScript的主要应用场景扩展到了服务器端,相应要考虑的细节也与浏览器端不一样, 须要更严谨地为每一份资源做出安排。总的来讲,内存在Node中不能为所欲为地使用,但也不是 彻底不擅长。本章介绍了内存的各类限制,但愿读者能够在使用中规避禁忌,与生态系统中的各 种软件搭配,发挥Node的长处。后端
如今知名和成熟的Web框架有Connect、Express等,本章中的内容在这些框架中都有实现, 由于行文的缘由,本章中的代码实现得较为粗糙,实际使用请使用这些成熟的框架。浏览器
尽管Node从单线程的角度来说它有够脆弱的:既不能充分利用多核CPU资源,稳定性也无 法获得保障。可是群体的力量是强大的,经过简单的主从模式,就能够将应用的质量提高一个 档次。在实际的复杂业务中,咱们可能要启动不少子进程来处理任务,结构甚至远比主从模式 复杂,可是每一个子进程应当是简单到只作好一件事,而后经过进程间通讯技术将它们链接起来 便可。这符合Unix的设计理念,每一个进程只作一件事,并作好一件事,将复杂分解为简单,将 简单组合成强大。服务器
尽管经过 child_process 模块能够大幅提高Node的稳定性,可是一旦主进程出现问题, 所 有子进程将会失去管理。在Node的进程管理以外,还须要用监听进程数量或监听日志的方式确 保整个系统的稳定性,即便主进程出错退出,也能及时获得监控警报,使得开发者能够及时处 理故障。微信
测试是应用或者系统最重要的质量保证手段。有单元测试实践的项目,必然对代码的粒度和 层次都掌握得较好。单元测试可以保证项目每一个局部的正确性,也可以在项目迭代过程当中很好地 监督和反馈迭代质量。若是没有单元测试,就如同黑夜里没有秉烛的行走。网络
对于性能,在编码过程当中必定存在部分感性认知,与实际状况有部分误差,而性能测试则能 很好地斧正这种差别。框架
思惟导图能比较清晰的还原整本书的知识结构体系,若是你还没用看过这本书,能够按照这个思惟导图的思路快速预习一遍,提升学习效率。学习新事物总容易遗忘,我比较喜欢在看书的时候用思惟导图作些记录,便于本身后期复习,若是你已经看过了这本书,也建议你收藏复习。若是你有神马建议或则想法,欢迎留言或加我微信交流:646321933异步