《Web前端技术丛书:新时期的Node.js入门》

[复制链接]
查看593 | 回复1 | 2019-11-24 17:59:04 | 显示全部楼层 |阅读模式




内容简介:

Web前端技术丛书
新时期的
Node,js人门
李锴著
苯大出版社
北京

容简介
Node. js是一门开源的、为Web而生的语言,具有高并发、异步等特点,并且拥有一个十分活跃的开发者社区
与Ruby、 Python等语言相比, Node. js更年轻、更易于没有经验的人上手使用,因此很快在世界各地的开发者中收
获了一大批拥趸。在guo内, Node. js在许多企业中获得了广泛应用,并取得了一系列的应用成果。然而,随着技术
的不断更新、 ECMAScript2015等新标准纷纷确定,现有的中文书籍就变得有些过时。本书立足于新的技术潮流
介绍了一系列全新的语言特性和标准,以便让读者在学习基础知识的同时紧跟新技术的发展。
本书分为8章6个附录,讲解了 Node. js的各种基础特性,使读者快速入门,同时结合语言最新的发展趋
势,让读者能够紧跟技术潮流。本书围绕 Node. js tE Web站点开发和爬虫系统中的应用展开,对 Node js在大
型项目中的定位与应用做了详细的说明
本书可用于 Node js入门,适合未接触过Node的读者以及在校的学生阅读,也适合作为高等院校和培训
学校相关专业的师生教学参考
本书封面贴有清华大学出版社防伪标签,无标签者不得销售
版权所有,侵权必究。侵权举报电话:0106278298913701121933
图书在版编目(C|P)数据
新时期的 Node js入门/李锴著.一北京:清华大学出版社,2018
ISBN978-7-302-48780-7
L.①新…Ⅱ.①李…Ⅲ.①JAVA语言一程序设计Iv.①TP3128
中guo版本图书馆CIP数据核字(2017)第272827号
责任编辑:夏毓彦
责任校对:闫秀华
责任印制:刘祎淼
出版发行:清华大学出版社
http://www.wqbook.com
地址:北京清华大学学研大厦A座
社总机:01062770175
邮购:010-62786544
投稿与读者服务:0106276969,c- service@ tup, tsinghua,edu,cn
质量反馈:010-6272015,zhiliang@tuptsinghua.edu.cn
印装者:三河市铭诚印务有限公司
经销:全guo新华书店
开本:190mm×260mm
字数:474千字
版次:2018年1月第1版
印次:2018年1月第1次印刷
印数:1~3000
产品编号:075003-01


guo内Node的开发者很多都读过朴灵写的《深入浅出 Node js》(以下简称《深入浅出》)
书,笔者也不例外,笔者在2014年初第一次接触Node,最初读的几本书就包含了这本《深入
浅出》,该书出版于2013年12月,距今已经差不多有4年的时间了
对于一门高速发展的语言来说,4年算得上很长的时间了。4年前Node的版本号还在
0.10x,而时至今日,已经迎来v800的最新版本了
Node项目始于2009年,2013年恰好处在当今(2017年)和2009年的中间节点,一门语
言在诞生之初的发展总是最快的,到了现在,Node逐渐地变得稳定下来
但即使这样,这4年中也发生了不少大事件:Node从分裂又走向了统一,ES2015标准的
推出等。
那么4年后的今天,Node有了哪些改变呢?
方面,基本的概念几乎没有改变,底层的ibuv和事件循环还是原来的样子,主要模块
的AP也没什么大的变化
另一方面,变动最多的大概是语法了, ECMAScript沉寂数年之后,终于推出了重量级的
新版本ES2015,并且计划每年发布一个新版本
换个角度来说,如果现在有一份使用Node最新版本写的代码,拿给还在使用0.10的开发
者看,最大可能是对里面各种奇怪的关键字和语法感到疑惑。这本身就说明了Node发生了如
此大的变动。
在笔者看来,Node的发展进入了平台期,这意味着在一段时间内,Node将维持现有的模
样,或许会增加或修改一些语法,底层的V8也可能做一些大幅度的改进,但代码的基本结构
不会有大的变动
Node的发展大致分为几个阶段
第一个阶段:从诞生到分裂,大致5年的时间。
第二个阶段:从与 10-S合并到ES2015标准正
,只有不到半年的时间。
第三个阶段:从v6.0.0全面支持ES2015至今,Node较大的更新都是围绕着新
ECMA201X标准展开的
所有的新与旧都是相对的,虽然在目前来看,本书记述的内容还算是比较新的,无论是
ES201x的使用,还是Koa2框架的介绍,都属于同类书中较少涉及的领域,但要是再过几年
的时间,本书的内容也会变得过时。

新时期的 Node, js入门
本书定位
关于本书的定位,笔者着实费了很大的脑筋,出版社老师建议我写一本入门书,当我
的时候其实内心是很犹豫的:一方面,Node的入门书籍市面上已经很多了,随便翻开一本
不论是里面的内容还是章节编排都大同小异:另一方面,入门书反而是最难写出水平的,因为
作者们大多已经有了相关领域的编程经验,那样就很难站在入门者的角度来进行写作。
经过考虑之后,我决定写一本《新时期的 Node js入门》,一方面能够让本书立足于最新
的技术潮流,另一方面对于ES201X又或者是Koa2来说,它们诞生的时间不长,笔者也不敢
说自己对这些新的技术和标准已经有了丰富的编程经验(之前使用最多的还是ES5语法和
Express),正好也能站在一个入门者的角度来审视这些新技术
本书的定位是一本新时期的Node入门书,关于“新”在哪里?一方面是内容的“新
新的标准已经出现,怎么能够停滞不前!ES2015带来了不少新的语言特性,它让之前需要花
不少工夫才能解决的问题变得轻而易举。另一方面,本书不想重复介绍同类书籍已经反复介绍
的内容,例如 Express框架的使用,在市面上翻开任意一本Node的入门书籍,都会不厌其烦
地向读者教授 Express的各种用法,作为代替,本书推荐了Koa这一框架作为入门介绍,它更
贴近新标准。
除了“如何使用”之外,本书还会兼顾Node底层的原理,读者大可在第一遍时跳过这些
内容,当对Node有了一个大概的掌握后,会自然而然地想去了解其背后的原理
关于本书内容
本书不是一本ES2015或者更新标准的说明书,也不想让内容停留在介绍各种模块的API
罗列上。
第1章讲解Node的运行机制,主要是底层的一些实现和通用的原理,可能需要一些操作
系统的知识
第2章介绍了通用的模块和使用方法,是真正的入门章节
第3章专注于新的 ECMAScript标准以及Node对其的支持。
第4章主要介绍如何更好地组织和书写异步代码,采用循序渐进的方式介绍了各种解决方
案的优劣之处
第5章使用Koa2框架来开发一个Web应用,涉及Web开发的各方面,例如路由处理
Session、页面渲染、数据存储等,
第6章介绍了如何使用Node来开发一个爬虫系统
第7章介绍常用的测试方法以及调试Node应用的技巧
第8章介绍了Node中错误处理的相关知识
附录A介绍_进.程_、线程和协程的概念,属于拓展的背景知识
附录BLua语言简介,Lua几乎可以认为是某些概念的最佳实现,例如协程。
附录C从零开发了一个玩具式的Web框架,可以认为是对Koa的一个简单模仿,对于初
学者来说,这应该是一个理解 Node Web原理的好方法。
附录 D MongoDB和 Redis简介

附录E使用 Docker来实现虚拟化
附录F介绍了使用npm来进行包管理的一些小技巧。
本书的每个章节都是环环相扣的,每一章讲述的内容都多多少少地被其他章节使用到,建
议读者循序渐进地阅读(第1章可以放到最后)。
循序渐进不仅仅体现在章节安排上,在系统的实现上也是如此,以第6章爬虫的开发为例
从糟糕的代码设计开始,一步步地进行改进,最后达到比较完善的状态。
那些糟糕的代码大部分都是在笔者还是初学者时写的,笔者很庆幸自己还能留着这些代
码,它们不仅见证了笔者本人对Node的认识过程,也见证了Node的发展历史
关于本书中的代码
所有的源代码都可以在https:/github.com/yuki-minakAmi/bookexamPle上找到,它们都经
过了充分的测试
本书中,除了Node编写的示例代码外,还会穿插一些其他语言(例如Java)的代码,这
是为了通过和其他语言的对比让读者更好地理解Node中的特性
笔者使用的电脑环境为 Mac OSX10.,本书中出现的代码绝大多数都是平台无关的,有
些代码在 Windows环境下运行会出现问题或者不能在 Windows下运行,本书也做了相应的
标注和提示。读者在阅读本书的时候,也建议打开自己的电脑,第一时间把代码写在文本编辑
者IDE中
本书面向的读者
就像标题所说的,本书是一本入门书,适合在校的学生以及未接触过Node的读者阅读。
如果读者有其他语言(例如Java)的编程经验,那么读起来可能会轻松一些,如果有使用
javAscript的经验就再好不过了。
如何学习Node
学习一门编程语言的最好办法,就是将其运用在实际的项目当中,但对于大多数开发者,
尤其是自己目前的工作与Node无关时,想找到合适的项目并不容易,大多数人做的还只是非
常简单的个人项目,例如一个 TODO List,复杂一点的比如一个博客网站,这些都算不上什
复杂的项目,从里面得到的经验也少得可怜
那些能处理高并发、拥有各种多_进.程_架构的项目不是每个人都有机会做,那么到哪里去找
有一些难度的Node项目练手呢?
那就只能把目光投向 GitHub了,使用 GitHub的搜索功能来寻找一些企业级的Node应用
如果感兴趣的话就试着提交代码,为开源项目贡献代码通常是一个不错的加分项
虽然有点王婆卖瓜,但笔者认为本书第7章的项目还是有一定的复杂度的,针对多_进.程_和
分布式的扩展还有很大的想象空间,读者可以借助 GitHub参与到共同开发上来
回复

使用道具 举报

wutiwl | 2020-1-26 17:03:46 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则