首页 > 代码库 > nodejs 源码解读(一) ---准备
nodejs 源码解读(一) ---准备
本人是一个学习nodejs 的菜鸟.为了更深入的学习nodejs 我决定和其他的大神一样去源码中一步一步的学习,搞清楚node的结构和核心原理.当然我也肯定能从中获得更多的编程知识.
在解读源码之前我想先进行一些思考.通常一个跨平台环境:比如node,jdk,avm之类的东西都有与之对应的开发语言.node 的是javascript,jdk 是java,avm 是actionscript.所谓环境其实就是在系统上进行了一层封装,保证通一份代码可以在不同的系统上运行的结果一致.显然node 肯定做了很多平台的兼容性代码.这一点可以去代码中考证.
另外,我们都知道一个语言除了公共的部分,比如变量的定义,循环,条件分支这些基础语法本质上是没有什么差别的,可以很快的掌握.语言都有自己特别的一面,比如javascript 它是脚本语言,弱类型 跟java 有很大不同,这是在研究nodejs源码之前就应该掌握的知识.接下来平台能做什么才是我们最关心的.计算机能做什么,平台就应该能做什么.计算(逻辑和数学运算),IO的输入输出(键盘,鼠标,屏幕,摄像头都算),网络传输,数据存储(文件,数据库之类) 是计算机的4大功能.不用说node必须得具备这些功能.这可以算是要考证的一点.
再者就是基于开发层面上的解读.这就会涉及到一些高级的东西,比如node 的核心原理.我们可以根据官网的宣传来考证.它说"Node.js?是一个基于Chrome V8 引擎的JavaScript 运行时。 Node.js 使用高效、轻量级的事件驱动、非阻塞I/O 模型".那就要知道这个nodejs 怎么跟V8 引擎关联上的,node 一个完整的运行的原理必须搞清楚.再者事件驱动怎么体现,非阻塞I/O 怎么体现,可以结合一些代码然后到源码中解读.这几个点也是需要去考证和验证的.
上面所讲的可能弄了半天还是一些基础的东西.当我们安装了一个nodejs 在命令行中敲了一段命令 这些到底怎么运行的.再者我写了一个app.js 里面放了些代码,它们是如何去进行包的依赖管理的.我想并不是所有人都花了时间去想弄明白它.
到了这里,nodejs 是不是没有什么可以解读的点了.我相信.javascript OOP,多线程,native,调用系统外部进程,集合,流操作等.这些nodejs的高级核心内容都会从源码中体现出来.
好吧就让我们带着上面的几个点去解读nodejs的源码吧:https://github.com/nodejs/node
nodejs 源码解读(一) ---准备