花了一个周末的时间,先从前到后略读了一遍,之后又从最后一章详细读到第一章,嘿嘿,倒着读竟然感觉比正着读还顺畅。
这种感觉说明了一个问题,本书在章节组织上是存在一些问题的;特别是第三章/第四章是比较深入的章节,在没有对node做一个基本编程体验的情况下,很难理解node特有编程模型的问题所在,理解这种特有编程模型的解决方案就更难了。
相对来讲,web编程,网络编程是比较常见的议题,在其他语言中也有直接对应,如果把这部分放在前面效果会更好。
章节组织上的问题,同时也反映出编程层次上的模糊性;作为一个node初学者,很难在看本书的时候抓住一条主线,能够由浅入深的进行step by step式编程学习。最大的感触应该是:啊,好多东西啊,作者知道的真多,可是我都看不懂。
此为不够浅出......
如何解决编程层次上的模糊性呢?我想可能需要回答以下问题:
node和os的边界是什么_____哪些知识是os相关的,node又是以何种自己的高效方式使用os系统调用的,这种高效方式如何影响了程序的编程模型?
node和v8的边界是什么_____哪些功能是v8提供的,哪些功能是node自己的,哪些功能又是node为v8增强的?
node和v8的交互模式是什么_____node如何调用v8,v8如何回调node,为什么node必须采用回调方式,是谁决定的谁?
node的内置模块和库的边界是什么_____哪些模块是写在node中的,哪些模块又是作为node的标准lib库提供的,哪些模块又是作为node的扩展lib库提供的?
node和其他服务器的区别是什么_____nginx+lua和node+js有太多相似的地方,都是一个服务器内嵌一种高级语言;那么,node和nginx相比,独特性表现在哪里呢,或者说优越性表现在哪里呢?
我们知道,nginx在多进程管理,进程负载均衡,内存管理上都是自身完备的。
而且更重要的是,nginx+lua同样是非阻塞模式,但是不存在回调函数问题,这对node有什么启发呢?或者说,node的回调存在的原因是什么呢?能不能避免呢?
这些问题,可能是我想了解的深入的部分.....
无论如何,node都提供了一个和nginx对照的参照。以人为镜,可以省自心,从这个角度上讲,本书功德无量......