序二

Node诞生于2009年,天才的屌丝青年Ryan Dahl利用了Google的V8引擎打造了基于事件循环实现的异步I/O框架。也许Ryan当时选择JavaScript作为服务器开发语言,只是因为V8的性能远超其他脚本语言,但是这却成为Node成功的极其重要的因素。不仅仅是JavaScript巨大的用户群,更重要的是JavaScript之前没有任何I/O库,这使Node在开发异步I/O时不会像EventMachine、Twisted那样因与同步I/O混用而导致问题。

短短几年的时间,Node取得了巨大的成功。在开源社区GitHub上,Node高居第二。express、socket.io这样的优秀框架都有着极高的排名,NPM上的模块数量和下载量也非常惊人。更可喜的是,国内的Node社区也诞生了许多优秀的开源项目,其中node-webkit、pomelo等在国际开源社区中都产生了一定的影响力。

在企业界,Node的应用也越来越广泛。LinkedIn的移动平台已经全部从Ruby迁移到Node,机器数量缩减为原来的十分之一。像Yahoo、Microsoft这样的大公司,有好多应用已经迁移到Node了。国内的阿里巴巴、网易、腾讯、新浪、百度等公司的很多线上产品也纷纷改用Node开发,并取得了很好的效果。

朴灵是国内最早的Node开发者之一,不仅组织了CNode社区,在InfoQ发表的“深入浅出Node.js”系列文章更是对国内的Node社区产生了巨大的影响。记得我在2011年初次接触Node的时候,除了国外的几个演讲文稿,基本上没有Node相关的图书,而最让我印象深刻的,毫无疑问是朴灵的“深入浅出Node.js”系列文章。正是这一系列文章,使我们较好地理解、学习Node后,开发出了pomelo框架,也奠定了朴灵在国内Node界的地位。

如今两年过去了,国内外的Node图书也出了不少。但国内的几本书有点偏浅,即使国外的几本名气很大的书也没有让我有动力通读全书,因为内容整体上没有太大深度,对于有较久开发经验的Node开发者帮助不是很大。不过当朴灵让我审校这本书时,我觉得收获颇多。相比其他Node图书的作者,他在淘宝一线的开发经验使这本书更有深度,而他文艺青年的背景让这本书读起来极其顺畅,他的钻研精神又让这本书在理论上很有深度。例如,朴灵在微博上自称“一个能搞定回调函数嵌套的男人”还真不是吹的,在第4章中,他详细介绍了Node的各种嵌套函数过深的解决方案,例如EventProxy、Promise、async、step、wind.js等各种解决方案都有深入讲解。此外,朴灵还是EventProxy的作者,在这方面有最权威的实践经验。

朴灵是国内Node界的第一传道士,除了那一系列文章,他还在全国各地组织了NodeParty和JSConf China(2012年的沪JS和2013年的京JS),并且在微博上以各种诙谐幽默的方法宣传Node。在各个技术大会上,我们都可以见到朴灵的身影。更强的是,朴灵在每次大会上所做的演讲很少雷同,他总是能挖掘出Node的方方面面,然后很认真地总结出来,以幽默的讲解让听众愉快地接受。

因此,当得知朴灵要写这本书时,我们都很兴奋。谁能比他更胜任呢?毫无疑问,这将是国内第一的Node图书。如今,经过一年多的等待,你们终于有机会看到朴灵这一年多辛勤劳动的成果了。

谢骋超

网易高级技术专家、架构师

pomelo开源游戏服务器框架创始人

2013年7月8日

目录

  • 序一
  • 序二
  • 前言
  • 致谢
  • 第 1 章 Node简介
  • 第 2 章 模块机制
  • 第 3 章 异步I/O
  • 第 4 章 异步编程
  • 第 5 章 内存控制
  • 第 6 章 理解Buffer
  • 第 7 章 网络编程
  • 第 8 章 构建Web应用
  • 第 9 章 玩转进程
  • 第 10 章 测试
  • 第 11 章 产品化
  • 附录 A 安装Node
  • 附录 B 调试Node
  • 附录 C Node编码规范
  • 附录 D 搭建局域NPM仓库