//灵魂深处闹革
Node.js是什么,设计它的初衷是什么,它致力于解决什么问题
这才是本章的要义。
======================================================
I/O的意义
Node.js想要解决的问题
并发的意义
实现并发的方法
======================================================
Node.js的定义
Node是一个平台。这是一个结论。
这个平台是构建在chrome的javascript运行时之上的。
Node的使用场景是构建网络应用程序。
Node是基于事件驱动和非阻塞的I/O模型开发。
在大数据和实时性方面尤为擅长。
======================================================
在传统的web中,表单是承载数据的载具,同时也是限定用户输入的载具,
因此用户的输入是可以预测的。但是在游戏的世界里,情况大不相同。
首先游戏玩家同时在线的可以达到百万级别,他们通过键盘输入各种不同的
组合输入,因此你是无法预测他们的行为。表单在此处丧失了作用,一切都是
实时的,异步的。
=======================================================
联网的I/O更是不可预测
你发送了一个http请求,你不知道这个请求什么时候会返回结果,因为影响
返回结果的因素太多了,而且很多都是不可控的。这也是网络编程有意思的地方。
事件驱动编程
每一个dom元素都有相应的事件,比如button的click事件
我们无法预测这个事件什么时候发生,我们也无法预测这个事件会发生几次,但是
我们知道这个事件一定会发生。人家说:事件驱动编程是处理不可预测性编程的
最佳方式。我愿意相信。
Node使用事件驱动来解决并发问题,知道有这么一回事就可以,这里面水很深。