跳到主要内容
CNode

深入浅出Nodejs读书笔记

精华分享
Ttw93发布于 11 年前最后回复 11 年前
121544450

原文来自我的博客:http://tw93.github.io/2015-03-01/shen-ru-qian-chu-nodejs-reading-mind-map.html 今天终于把朴灵老师写的《深入浅出Node.js》给学习完了, 这本书不是一本简单的Node入门书籍,它没有停留在Node介绍或者框架、库的使用层面上,而是从不同的视角来揭示Node自己内在的特点和结构。建议有一定Node基础或者做过Node方面的小项目的同学阅读,看完以后你的思维会有很奇特的碰撞,我看的时候就常常会有这样的想法:“哦,原来这个功能是这样实现的哦”。下面这篇文章是我第二次阅读《深入浅出Node.js》的一些学习记录,并且通过百度脑图这个工具来画出思维导图,每天将自己的学习总结写在这篇文章下面。

新增原始文件脑图地址,这样大家就可以直接到脑图去看思维导图

Node简介

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

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

Node简介

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

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

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玩转进程

查看回复

回复 (121)

K
KevinCGH#12111 年前

赞!👍~~

Z
ZitQin#12011 年前

给楼主点赞 自豪地采用 CNodeJS ionic

Y
yreenchan#11911 年前

总结得很赞!

M
maschzh#11811 年前

赞,总结的非常到位

A
AlfredYan#11711 年前

mark

C
chenpeng1102#11611 年前

忍不住给你个赞

I
iPoplar#11511 年前

S
sc-yuns#11411 年前

好文 感谢楼主分享

来自炫酷的 CNodeMD

M
mg0324#11311 年前

C
charon120#11211 年前

Y
yangzhiw#11111 年前

可以

E
echoloyuk#11011 年前

mark

R
ronald1986#10911 年前

楼主超用心

M
morosefrog#10811 年前

mark

H
Hankszhang#10711 年前

mark

S
simdm#10611 年前

赞一个

N
naruto900814#10511 年前

mark

X
x-web#10411 年前

赞,也想入手这本书啦。。。

H
huangff1986#10311 年前

mark

G
gyc1299339354#10211 年前

mark

L
lik0914#10111 年前

赞一个, 也买了这本书

Z
zhangjx#10011 年前

mark

P
pisceswin#9911 年前

mark

P
panxue#9811 年前

mark

B
blackjack#9711 年前

楼主 辛苦

J
jackson18#9611 年前

mark

G
gendemos#9511 年前

真不错

1
1340641314#9411 年前

mark

T
tw93#9311 年前
S
suntopo#9211 年前

是不是总结的朴大人的

P
peng-tao#9111 年前

赞赞赞。

B
bakerz#9011 年前

学习了,赞!

S
shouliang#8911 年前

已收藏之,赞!

P
pflu#8811 年前

好工作!

P
panhb#8711 年前

脑图非常赞,谢谢分享

H
hinson0#8611 年前

这本书非常不错的。就想lz说的一样,适合一定经验的人看,在思想上经常会有共鸣,碰撞。 我从事PHP,前端也比较扎实。看这个书的时候就有这样的感受,花了好几个星期把每一章都过了1遍,然后在实际遇到了问题,又会重新翻看这本书,这本书个人觉得是node中非常好的一本书 我怂恿我们公司前端工程师他们每人买一本

H
highsea#8511 年前

马克

W
wenshiqi0#8411 年前

我看完了之后 书上也是白白的 也没有什么笔记 但是还是上下班背着它 时不时翻开来看看 重温一下 有种在供奉什么的既视感 自豪地采用 CNodeJS ionic

K
klaus01#8111 年前

很好,赞一个

P
pobing#8011 年前

刚开始学node,很赞的资料,不过下面的 第二步是否应该是 客户端保存cookie untitled1.png

F
fancylife#7911 年前

挺好的

M
milkman2014#7711 年前
引用 copycatx5个人以为,书写的挺乱,当然作者前端出身写成这样估计已经到头了。 作为基本常识看看还凑合。

@copycatx5 你来说说哪里乱了?估计是里面因Node牵涉到一些系统或其他知识你看不懂吧,要做一些深入就无法避开这些关联,何况作者朴灵还不算完全铺开深入去谈这些关联,也不可能这样去做,否则这就不是一本书了,是N本,否则书名也不仅仅叫《深入浅出Nodejs》了。很多关联的东西,如果你很懂,自然就会产生共鸣;如果你模棱两可或全然不懂,那补课是你自个的事了。就市面上关于Node的书来说,朴灵这本来龙去脉、承上启下算最清晰的了,书如其名,也更深入。像《Node.js开发指南》、《Node即学即用》、《Node.js实战》、《七天学会NodeJS》(开源文档)更多的是倾向于类似使用说明书的方向,当然并不是说这些很渣不需要,只是侧重不一样,相对没那么深入。

J
jasonworg#7411 年前

赞~

C
crystaldust#7311 年前

收藏一下,我认为国内国外所有写NodeJS的最好的书就是这本了,看完之后感觉功力大增啊

Y
yangjiqiao86#7211 年前

收藏

L
limeng0403#7111 年前

牛人遍地都是啊

L
likaihua#7011 年前

R
rencai#6811 年前

好东西

K
KevinCGH#6711 年前

好东西,赞 自豪地采用 CNodeJS ionic

Y
yinuoba#6611 年前

mark 自豪地采用 CNodeJS ionic

I
imrememberlee#6511 年前

请问一下 百度脑图 怎么导出png 难道是 直接截图

S
songqinghehe#6411 年前

太赞了,mark

M
MofeLee#6311 年前

太棒了~

S
sxlzll#6211 年前

赞 自豪地采用 CNodeJS ionic

M
maschzh#6111 年前

赞 发自 CNodeJs ionic

F
fengliner#5911 年前

nice

X
xiaoyang2022#5811 年前

精华啊,支持楼主 自豪地采用 CNodeJS ionic

R
rochael#5711 年前
Z
ZuChat#5611 年前

最近在看。哈哈

A
amoa400#5511 年前

zan

S
ssss123456ssssa#5411 年前

这个必须要赞

D
donggw2030521#5211 年前

好东西! 自豪地采用 CNodeJS ionic

J
jiegao#5111 年前

S
sighWang#5011 年前

忍不住点个赞

J
jiankeluoluo#4911 年前

好东西,赞一个

Z
zjh-neverstop#4811 年前

赞一个,这本书写得非常好,整体上看过两遍了,部分章节看了很多遍,每次看都有很大收获。

T
tw93#4711 年前
引用 copycatx5个人以为,书写的挺乱,当然作者前端出身写成这样估计已经到头了。 作为基本常识看看还凑合。

@copycatx5 但是对于中国国内Node方面的学习资料,这本应该算很好的了。

C
copycatx5#4611 年前

个人以为,书写的挺乱,当然作者前端出身写成这样估计已经到头了。 作为基本常识看看还凑合。

Y
yessirpopesama#4511 年前

楼主好用心 学习学习~~

J
jason1213#4411 年前

赞一个,最近在看,很有意思

S
soliury#4311 年前

mark

D
DevinXian#4211 年前

赞!!!

Z
zhuwenjun#4111 年前

赞下,最近也在看这本书

Y
ystyle#4011 年前

nodejs有做爬虫时用什么库? 能处理cookies的,html解析自己会了,但每次想自己拼header和设置cookies很麻烦

I
ifeiteng#3811 年前

赞!

R
ruchee#3711 年前

真有心,32个赞

J
jiangli373#3611 年前

赞一个

D
dgunzi#3511 年前

看来有必要再看一遍

J
JacksonTian#3411 年前

好赞。基本上写这本书就是按着脉络去详细描述出来。这样就将书本还原成大纲了。所谓书越读越薄就是这个意思吧。

M
michaeljunlove#3311 年前

好认真啊

C
cdll#3211 年前

good game!

D
DavidCai1993#3111 年前

赞一个

E
Emma0809#3011 年前

已收藏!楼主有心了

T
tw93#2911 年前
引用 zdan楼主真用心

@zdan └(^o^)┘

Z
zdan#2811 年前

楼主真用心

S
shuson#2711 年前

这种帖子必须赞

C
CocaCola183#2611 年前

这种帖子必须赞

T
tw93#2511 年前
引用 chapgaga为何这本书买不到电子版? 纸质书带着麻烦

@chapgaga 图灵社区好像有电子书卖,你去看看

C
chapgaga#2411 年前

为何这本书买不到电子版? 纸质书带着麻烦

B
booxood#2311 年前

赞! 虽然早就看完了,但也就是看完了。

R
read125#2211 年前

有这书却没认认真真的看过....

J
jerrywu55#2111 年前

K
KurtisLiu#2011 年前

赞, mark

H
huangzh123#1911 年前

收藏 自豪地采用 CNodeJS ionic

K
kenshinhu#1811 年前

赞!

R
ravenwang#1711 年前

赞!

S
SoaringTiger#1611 年前

顶,马克

C
cwallow#1511 年前

T
tw93#1411 年前
H
huqiliang#1211 年前
引用 xieren58同问 脑图用的是什么工具

@xieren58 百度的图说

N
naruto900814#1111 年前

东西特别好

X
xieren58#1011 年前

同问 脑图用的是什么工具

T
think2011#911 年前

赞! (≧▽≦)/ 谢谢楼主分享。

还想问一下,脑图用的是什么工具,效果好好。

E
ele828#811 年前

非常好,已收藏

L
luicfer#711 年前

A
alsotang#611 年前

赞! @JacksonTian

Z
zysam#511 年前

梳理得很好。学习了。

H
hezedu#411 年前

收藏

B
bsspirit#311 年前

赞!

M
microlv#211 年前

脑图不错.!

D
dayuoba#111 年前

赞!32个赞!

参与回复

登录后即可参与回复。登录