首页 > 代码库 > 精通Node.js: 你应该阅读的书籍

精通Node.js: 你应该阅读的书籍

最开始的几年,在应用服务器编程领域,我存在着一个选择。那时候,我已经远离了C一些时间,喜欢上JavaScript很长时间。

我喜欢JavaScript是因为JavaScript很轻,很优雅,很容易表达我的想法。并且如果我想实现一个可视化的内容,我可以在半小时内通过HTML Css写出一个漂亮的、生动的交互工具,然后把我任何想到的东西扔进去给别人看。

我很喜欢这样写javascript,虽然我知道道上这样写:JavaScript。但是javascript这样的写法让我觉得更加的轻快,虽然javascript本质上已经很轻了。

应用服务器编程,需要更快速高效的编码,更严格繁杂的口令认证安全检测。当我在面临这个转向选择时,我犹豫在两个方面:一个是Node.js,而另一个则是Golang。没错,就是Golang。

当时这两个领域的资料非常少。我在书库市场上挑选了几天后,我决定了使用Golang:

  • 肯·汤普逊编写
  • Google背景
  • C的简化版,封装了大量通信函数
  • 有两本书《Go语言程序设计》《Go语言编程》

我订阅了两本书,并且开始Golang。开始的几章是很顺畅的,一些C风格的保留,一些DDL语言的语法,倒也充满了新鲜的乐趣。不过当我读到新的结构体,和对象的时候,臃肿的声明方式和难看的定义,让我产生了极大的反感。这绝不应该是21世纪发明的语言。如果我要写Go,那我还不如去写Java,或者转回C。

所以很快的,我丢弃了Golang。并且关注Node.js的消息。

在我开始真正决定全面转向Node.js时,来自一本书籍的出版:《Node.js高级编程》。一本真正拨云见日,深入浅出,用最通俗的文字解释了Node.js的使用过程。于是,在这个背景下,我很顺利并且快速的转入Node.js,并以此为主要编程工作。

要想完全的理解一个领域的内容,纸质书本是绝对必要的。电子书本虽然有其便易性,但是在阅读上并不方便。在研究的过程中,你会需要不时地翻阅书中的某些特定内容,而电子书并不适合。纸质的书本可以让你迅速定位到需要的内容,并且把思维限制在一个小的范围,进而获得深入的探索、领悟。

亚马逊和京东,都提供货到付款,花几分钟选好书,然后点击购买,当天或者第二天就能收到你需要的书本。获取知识很容易。

I 你需要阅读的Node.js基础书籍

进入Node.js,一定要搭配轻松易懂的书籍,这样才能花费最少的时间,获得最高的收益。以下是我对一些Node.js书籍的读后印象。

  1. 《Node.js高级编程》

    技术分享
    《Node.js高级编程》

    Node.js是一种主流框架,它允许你使用JavaScript快速构建具有高度可伸缩性的网络程序。可是,它有自己的学习曲线,这本较为深入的指南性图书首先介绍了Node.js平台的安装,然后重点关注:创建和加载模块;使用缓冲区对二进制数据进行处理、编码和编码;用事件发射器模式简化事件绑定等。本书还涵盖了从使用定时器制定函数执行计划到创建和控制外部进程等内容,可以让你为运行、构建和测试自定义模块做好准备。

    Pedro Teixeria是一位高产的开源项目程序员,同时也是众多Node.js模块的构建者。他是Node公司的创始人之一,同时也是Nodejitsu公司的高级程序员,Nodejitsu公司是以Node.js平台作为服务的领头羊。自从在14年前获得软件工程学位后,他从事过的职业包括咨询师和程序员,并且他还是世界知名的Node.js社区活跃成员。此外,他还是广受欢迎的Node Tuts视频的制作者。

    没有更多的言语来形容这本书的价值,这本书绝对是你进入Node.js领域必读的第一本书!

    从异步模型开始,作者逐步讲解了事件、流、二进制数据处理、文件系统、TCP HTTP常识、TCP客户端服务器、HTTP客户端服务器、TLS以及HTTPS安全通信、进程子进程、mongodb、mysql、redis数据库的连接操作,甚至还介绍了一些流行的中间件和express。

    通俗易通,内容广泛。被称作Node.js领域的《JavaScript高级编程》(JavaScript圣经)。这本书堪称Node.js圣经, 我直到现在还是经常翻看其中的某些内容。

  2. 《了不起的Node.js:将JavaScript进行到底》

    技术分享
    《了不起的Node.js:将JavaScript进行到底》

    《了不起的Node.js:将JavaScript进行到底》是一本经典的 Learning by Doing的书籍。它由 Node社区著名的 Socket.IO作者—— Guillermo Rauch,通过大量的实践案例撰写,并由 Node社区非常活跃的开发者—— Goddy Zhao翻译而成。 《了不起的Node.js:将JavaScript进行到底》内容主要由对五大部分的介绍组成: Node核心设计理念、 Node核心模块 API、Web开发、数据库以及测试。从前到后、由表及里地对使用 Node进行 Web开发的每一个环节都进行了深入的讲解,并且最大的特点就是通过大量的实际案例、代码展示来剖析技术点,讲解最佳实践。

    本书写作精良 —— Amazon.com读者Shawn Rapp
    本书直指要点,且无无用废话,可谓字字珠玑 —— Amazon.com读者Pragmateek

    也是把Node.js讲的非常清晰的一本书,比《Node.js高级编程》稍逊一筹,但是也是非常难得。里边的内容《Node.js高级编程》基本上都讲到了,不过大家站的角度略有不同,可以搭配翻看。另外此书还讲解了TDD和BDD测试开发,并且讲解了Mocha测试框架,对于想了解测试是不错的选择。

  3. 《Node即学即用》

    技术分享
    《Node即学即用》

    "本书探讨了Node及许多第三方模块,并给出了指导练习,旨在带你了解Node。通过学习本书,你不但能够熟悉JavaScript的基本操作,还能逐渐开始构建复杂、交互式的网站。如果你曾经使用过其他服务器端Web框架,定会震惊于用Node这么容易就能编写一个服务器!"
    -- Ryan Dahl,Node.js的创建者

    "本书很好地诠释了Node的精髓,并讲述了如何用它构建交互式网络应用和网站。Node棒极了,而本书就是关于Node的很好的指南,请尽情享受阅读的乐趣吧!"
    -- Brendan Eich,JavaScript的创建者

    我第一本Node.js书买的此书,但是实在不适合作为第1本Node.js参考书。

    书很薄,内容讲的点到为止,但是内容都充满了黄金。适合作为第2本进阶书籍,如果你没有Node.js基础,看此书会让你十分困难。然而当你掌握了Node.js之后,看此书能让你认清Node.js的内部成分。

    书中一开始就是Twitter应用客户端和服务器的Demo,然后逐步讲解了REPL、常见服务器模型、加密解密、缓冲区、TCP HTTP原理、中间件、常用数据库的通信过程。

    非常实用的书籍,一定要买一本!

  4. 《Node.js开发指南》

    技术分享
    《Node.js开发指南》

    这本书更确切的说是一本小册子,对Node.js的介绍比较简单,没有深入太多。讲解了TCP HTTP服务器的构建和使用express构建博客的过程,和一些其他的Node.js内容。

    读这本书比较容易入门,文字写的很清晰。但是切记,读完之后务必要有一本系统介绍Node.js的书作为后盾,不然你很容易停留表面。

II 你需要阅读的TCP HTTP基础书籍

TCP?
HTTP?

没错,如果你想搞Node.js,那就意味着你要跟TCP HTTP搞在一起。那么你就必须了解TCP HTTP的内部原理。如果你不能正确理解TCP HTTP的底层内容,就无法编写出灵活高效的应用服务。

上边的一些Node.js书籍对TCP HTTP有了一些系统性的介绍,但是我觉得还远远不够,尤其是HTTP HTTPS,应用服务器最主要的内容。

所以,你大概还需要以下的书籍。

  1. 《HTTP权威指南》

    技术分享
    《HTTP权威指南》

    《HTTP权威指南》详细解释了HTTP协议,包括HTTP是如何工作的,如何用HTTP来开发基于Web的应用程序,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。《HTTP权威指南》的中心内容是HTTP,本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中,主要涵盖HTTP的技术运作方式、产生动机、性能和目标以及一些相关技术问题。

    不需要我多说了,HTTP的圣经!

    学习HTTP不可能不看这本书。
    而且书中还同时讲解了部分TCP原理。

    你想要的东西都在里边:报文,编码,新鲜度,命中,缓存,隧道、连接管理,代理,机器人,DNS,...应用尽有。学习HTTP最全面最权威的书籍!

    如果你是Node.js程序员,却从来没有阅读过本书,那么很难成为一个高层的Node.js程序员。

  2. 《Web性能权威指南》

    技术分享
    《Web性能权威指南》

    《Web性能权威指南》是谷歌公司高性能团队核心成员的权威之作,堪称实战经验与规范解读完美结合的产物。《Web性能权威指南》目标是涵盖Web开发者技术体系中应该掌握的所有网络及性能优化知识。全书以性能优化为主线,从TCP、UDP和TLS协议讲起,解释了如何针对这几种协议和基础设施来优化应用。然后深入探讨了无线和移动网络的工作机制。最后,揭示了HTTP协议的底层细节,同时详细介绍了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC和DataChannel等现代浏览器新增的具有革命性的新能力。

    我觉得这本书的性价比不怎么样,不过也值得一看。如果你手头不那么宽裕,不买也罢。书中讲解了一些实际运用的服务器,特别讲解了通信的延迟、带宽、请求响应需要考虑的方方面面,以及其他服务器所能涉及到的实际问题。

    如果你不在乎多花几十大洋,可以买一本搭配《HTTP权威指南》看。

  3. 《RESTful Web Services》

    技术分享
    《RESTful Web Services》

    《RESTful Web APIs中文版》是针对RESTful API的实用指南,通过展示各种用来创建高可用应用的强大工具,讲解REST的深层原理,以及介绍基于超媒体API的策略,使读者得以在将上述内容融会贯通后,设计出让客户高度满意的RESTful的web API。《RESTful Web APIs中文版》极具权威性与前瞻性,既代表了API领域的最前沿趋势,也覆盖了API领域的最重要实践。

    “这是一本了不起的书!《RESTful Web APIs》覆盖了当今API领域最重要的趋势和实践。”
    ——John Musser ProgrammableWeb创始人

    很不错的书。

    看了这本书,能让你了解RESTful的常识,并进一步增加对HTTP URI设计的了解。对于应用服务器开发和架构设计,也是一本非常好的参考书。

    如果你是服务器应用设计的新手,这本书能很好地指导你如何设计你的URI。

III 你需要阅读的设计模式书籍

如果你不想局限于做一个"小工",那么具备模型设计思维是非常必要的。
如何更好的设计目标,更有结构性的编码,提供更好的接口,那么有必要读一读设计模型的书籍。

并不是面向对象才需要设计模式!

  1. 《Head First 设计模式》

    技术分享
    《Head First 设计模式》

    。《Head First设计模式(中文版)》的产品设计应用神经生物学、认知科学,以及学习理论,这使得此书能够将这些知识深深地印在你的脑海里,不容易被遗忘。《Head First设计模式(中文版)》的编写方式采用引导式教学,不直接告诉你该怎么做,而是利用故事当作引子,带领读者思考并想办法解决问题。

    编程书籍哪家强?图灵畅销找Head First!

    我觉得Head First系列的书籍不止是用匠心独具来形容了,这套丛书简直就是许多高端程序员送出的礼物。读这些书,如同在幼稚园同老师做益智游戏,简单轻松搞笑,同时学到刻骨的知识。

    Head First的每一本书都是经典中的经典!

    这本书的编程语言是Java,没有关系,即便你不懂Java,有任何一门语言基础,你都能看懂这本书。书中对设计模式Gof圣经进行了白话讲解,你不知道如何就学通了设计模式。

  2. 《计算机科学丛书:设计模式 可复用面向对象软件的基础》

    技术分享
    《计算机科学丛书:设计模式 可复用面向对象软件的基础》

    《设计模式:可复用面向对象软件的基础》是引导读者走出软件设计迷宫的指路明灯,凝聚了软件开发界几十年设计经验的结晶。四位顶尖的面向对象领域专家精心选取了最具价值的设计实践,加以分类整理和命名,并用简洁而易于重用的形式表达出来。本书已经成为面向对象技术人员的圣经和词典,书中定义的23个模式逐渐成为开发界技术交流所必备的基础知识和语汇。

    设计模式范式化的出处。设计模式书籍的权威鼻祖。

    但是我对此书的评价是差评。此书使用C++作为语言,而且4位作者似乎并不像真的告诉你设计模式是怎么回事,虽然作者们看似很勤劳,配图一个接着一个,但是该讲的内容作者是不会讲的。

    你可以把ta买来翻看翻看,然后放在书架上唬人。因为只需要看《Head First 设计模式》已经让你通达设计模式的境界。

  3. 《JavaScript设计模式》

    技术分享
    《JavaScript设计模式》

    Web应用取代桌面程序的时代已经到来!作为Web前端的核心技术,JavaScript的重要性不言而喻,它有望成为下一代统治性程序语言。但由于业界长期的误解和滥用,也有不少人仍然对此半信半疑。那么,JavaScript到底能否当此大任呢? 本书中,Google和Yahoo公司的两位资深Web专家对此给出了掷地有声的肯定回答。作者针对常见的开发任务,从YUI等实战代码中取材,提供了专家级的解决方案,不仅透彻剖析了JavaScript中的面向对象编程。而且深入探讨了如何用JavaScript实现以前只在服务器端应用的设计模式。如何根据实际场景选择恰当的设计模式,开发出高质量的企业级代码。本书充分证明:JavaScript不仅毫不逊色于其他高级语言,已经是一种成熟且强大的面向对象语言。而且还拥有Java和C++等语言不具备的面向未来的特性,因此更加灵活、更富于表现力。 无论是前端工程师-还是服务器端程序员,通过本书都将使自己的JavaScript功力提升到前所未有的高度。

    Google的工程师联合Yahoo工程师的著作,JavaScript版本的设计模式,讲解非常精彩。

    不过我怀疑市面上是否能够买到,当初我是搞了个打印版本。如果你能搞到一本,那么对于JavaScript的理解将会至上一个台阶。

IV 你需要阅读的JavaScript书籍

万丈高楼平地起,JavaScript功力不够?
那么你的Node.js编码过程将会非常受挫。
因此,系统地学习JavaScript是非常必要的。

  1. 《JavaScript高级程序设计》

    技术分享
    《JavaScript高级程序设计》

    《JavaScript高级程序设计(第3版)》是JavaScript超级畅销书的最新版。ECMAScript 5和HTML5在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript增添了很多适应未来发展的新特性。《JavaScript高级程序设计(第3版)》这一版除增加5章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax与Comet服务器端通信,HTML5表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践。《JavaScript高级程序设计(第3版)》附录展望了未来的API和ECMAScript Harmony规范。

    “如果你像我一样,想学习或者熟练掌握今天最热门的Web开发技术,《JavaScript高级程序设计》是一个绝佳的起点,适合在所有Ajax图书之前阅读。”
    —— J.Ambrose Little Microsoft MVP

    “《JavaScript高级程序设计》作者显然非常了解读者的需要,落笔切中要害,行文信息密集.单单对客户端通信、Web服务、正则表达式、DOM、XML处理等现代JavaScrpt技术的详细讲解,就已经物超所值。”
    —— JavaScriptkit.com

    JavaScript的编程圣经,Yahoo程序员作品。目前已经是第3?版了。

    基础语法,面向对象,柯里化,高级函数,定时器节流,Document,XML,JSON,...应有尽有。书有600多页厚度,然而讲解的非常简单细致,足见作者的心思细腻和思维伶俐。

    学JavaScript买此书就对了!

  2. 《编写可维护的JavaScript》

    技术分享
    《编写可维护的JavaScript》

    本书是一本教你写出具有前瞻性的JavaScirpt代码的完全手册,在团队作战中特别有用。
    —— YUI工程师 Ryan Grove,Yahoo!

    作者将他十多年工作经验的精华部分浓缩至这本通俗易读的书中。我建议每个开发工程师和在校学生尽早阅读本书。不管你有多少经验,本书中的每一页内容都会让你变得更加优秀且倍受大家欢迎。
    —— Web设计师兼Web开发人员 Lea Verou

    这是一本前端工程师的指南,指明了在编码过程需要注意的方方面面。提高可维护性是一个非常大的话题,而这本书,是一个非常不错的起点。
    —— 支付宝Web前端工程师 王保平(玉伯)

    与上面的书籍同一个作者。这本书侧重介绍工程化的JavaScript,全面细致的讲解了实际项目如何解决JavaScript编程。包括注释,模板引擎,配置文件,编译预编译,UI设计,兼容性,文件合并压缩,自动化测试,版本构建...

  3. 《JavaScript权威指南》

    技术分享
    《JavaScript权威指南》

    从1996年以来,本书已经成为JavaScript程序员心中的《圣经》。该书已经印刷了50多万册,Web开发人员对它如是评价:“本书是JavaScript程序员的必备参考……内容组织得很好,而且非常详细。”
    —— Brendan Eich,JavaScript之父,Mozilla CTO

    “我从本书学到的内容直接影响到我的职业生涯。”
    —— Andrew Hedges,Tapulous公司游戏工程师

    “本书教会了我JavaScript。”
    —— Tom Robinson,280 North的创始人,Cappuccion的合作创始人

    “通过阅读本书,我能全面地掌握JavaScript这门语言,本书让我受益匪浅。”
    —— J.Chris Anderson,CouchBase的创始人,Apache CouchDB委员会成员,《CouchDB:The Definitive Guide》一书的作者

    “如果让我来推荐一本学习JavaScript的最佳书籍,我一定会推荐本书。”
    —— Rey Bango,微软客户端Web社区项目主管和jQuery团队成员

    然而,作为一个反复读了3次以上的亲身体验者,我认为此书写的很差,非常之差:

    • 大百科
    • 书很厚
    • 书很贵
    • 每一章作者都没有讲清楚所要解决的问题

    要说书中优秀的地方,也就是关于函数式设计和子集这两部分了,如果你想了解一些函数式和算法的东西,看一看这两章的内容。

  4. 《JavaScript经典实例》

    技术分享
    《JavaScript经典实例》

    《JavaScript经典实例》各节中的完整代码解决了常见的编程问题,并且给出了在任何浏览器中构建Web应用程序的技术。只需要将这些代码示例复制并粘贴到你自己的项目中就行了,可以快速完成工作,并且在此过程中学习JavaScript的很多知识。你还将学习如何利用ECMAScript5和HTML5中的最新功能,包括新的跨域挂件通信技术、HTML5的video和audio元素,以及绘制画布。《JavaScript经典实例》中一些章节介绍了如何将这些技术与JavaScript一起使用,构建高品质的应用程序界面。

    你可以把此书当成一个工具参考书,当你有问题无法解决时,可以到书中目录搜寻以下,也许能找到你需要的东西。包括正则表达式,循环,事件,浏览器处理,表单访问,...

  5. 《基于MVC的JavaScript Web富应用开发》

    技术分享
    《基于MVC的JavaScript Web富应用开发》

    《基于MVC的JavaScript Web富应用开发》所涵盖的知识点非常全面,从Mvc的基本理论到网络协议、从模块解耦到异步编程模型、从HTML5/CSS3到NodeJS、从软件测试到部署调试,对于很多前端工程师来说,这些知识正是突破自己的瓶颈所亟需的。《基于MVC的JavaScript Web富应用开发》将专注于讲述如何构建“优雅又不失高水准”(state of the art)的JavaScript应用,包括软件架构、模板引擎、框架和库、同服务器的消息通信等内容。书中同样提供了大量的示例代码,可以帮助你更深入地理解很多重要的概念。除此之外,作者在MVC和架构方面的很多观点都很有启发性,即使你不是一名JavaScript程序员,读完《基于MVC的JavaScript Web富应用开发》后也会受益匪浅。

    “强烈向读者推荐此书,它将会教你如何构建先进的富应用程序,书中给出的很多优秀的工具和最佳实践都是很多程序员和工程师在工作中亟需的。我已经记不起向多少人推荐过这本书了。”
    —— Addy Osmani 美国在线JavaScript工程师

    这本书可以让你全面了解编写浏览器客户端的知识,而且书中使用了MVC和许多设计模式的内容。如果你偏爱面向对象,这本书会比较适合阅读。

    另外,这本书中的许多实例都介绍了一些很有价值很实用的编码方法。

V JavaScript 九阴真经

当你想要JavaScript技巧通往更神秘的境地时,那么下面的两本《九阴真经》就不能错过。

    1. 《JavaScript语言精粹》

      技术分享
      《JavaScript语言精粹》

      JavaScript曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,也证明了它其实是一门优秀的语言。Douglas Crockford在本书中剥开了JavaScript沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript子集,让你看到一门优稚的、轻量级的和非常富有表现力的语言。作者从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9个方面来呈现这门语言真正的精华部分,通过它们完全可以构建出优雅高效的代码。作者还通过附录列出了这门语言的糟粕和鸡肋部分,且告诉你如何避免它们。最后还介绍了JSLint,通过它的检验,能有效地保障我们的代码品质。

      这是一本介绍JavaScript语言本质的权威书籍,值得任何正在或准备从事JavaScript开发的人阅读,并且需要反复阅读。学习、理解,实践大师的思想,我们才可能站在巨人的肩上,才有机会超越大师,这本《JavaScript语言精粹》就是开始。

      天下武学,唯我独尊。

      想了解JavaScript的真正奥秘?那么你必须拥有此书。

      JSON、JSLint、JSMin和ADSafe的作者,ECMAScript标准委员会的制定者之一,而且多次在ECMAScript规范制定中起到关键作用,被JavaScript之父Brendan Eich称为JavaScript的Yoda。

      JavaScript中的糟粕和精华,模块,闭包,递归,柯里化,记忆,原型,...各种内功心法,大力丸药房,奇招妙手,你都可以获得深入的了解。

      而且附带json_parse()源码。

    2. 《JavaScript编程精解》

      技术分享
      《JavaScript编程精解》

      编程原理与运用规则的简练、完美融合。我喜欢游戏式的程序开发教程。本书再次点燃了我学习编程的热情。对了,是JavaScript!
      —— Brendan Eich,JavaScript之父

      因为这本书,我成为了更棒的架构师、作家、咨询师和开发者。
      —— Angus Croll,Twitter开发者

      如果你决定只买一本有关JavaScript的书,那么就应是Marijn Haverbeke的这本书。
      —— Joey deVilla,Global Nerdy

      本书不仅是学习JavaScript最棒的教材之一,也是通过学习JavaScript进而学习现代编程的优秀图书。当有人问我如何学好JavaScript时,我会推荐这本书。
      —— Chris Williams,美国JSConf组织者

      我读过的最棒的JavaScript书籍之一。
      —— Rey Bango,微软Client-Web社区项目经理和jQuery团队成员

      这本书对编程基本原理的详述以及对栈和环境等概念的解释非常到位。注重细节使本书从其他的JavaScript书中脱颖而出。
      —— Designorati

      如果你没有听说过CodeMirror,那就说明你的编程功底恐怕还有待提高。现在,许多大名鼎鼎的代码编辑器都内置了CodeMirror,作为代码高亮以及文本操作的程序库。许多流行编辑器都内置了CodeMirror,甚至现在流行的Markdown语法在线编辑器。

      此书作者就是CodeMirror的作者,编程功底无话可说。

      函数式,面向对象的本质是什么?这本书会给出一个深刻的解释。最有意思的是,本书每一个章节都有一个谜题一样的任务,作者一步一步的使用精深的JavaScript功力,为大家一层层的解答各个谜题,并且过程清晰简明。

精通Node.js: 你应该阅读的书籍