所有PHP开发人员应该知道的Node.js的5个特点,Node项目还非常年轻,但很少看到对一个项目如此狂热的社区,作为一个新技术,php程序员要了解些什么呢?
【 tulaoshi.com - Javascript 】
1. Node.js构建于Chrome的JavaScript引擎
我们知道,Google的Chrome浏览器有一个非常快速的JavaScript引擎,叫做V8。这个JS引擎可以被独立出来。Node.js就是建立在V8之上的。这也是为什么Node.js会运行得如此之快。这对于开发者来说,有几个好处:
2. Node.js不仅仅是一个网页服务器或者平台
和PHP不同,Node.js 不是以网页为中心的。Node.js 是通用目的的JS运行时,带有很多功能强大的库。其中有一个库提供了 HTTP/HTTPS 的实现。
你可以用Node.js做很多事情。你可以很容易地利用它来创建一个命令行程序或者其他TCP/IP服务。
3. Node.js 是面向对象的 (类似于古怪的JavaScript面向对象风格)
我喜欢jQuery。但是它让我变懒,写了很多简单、快速但是很难看毫无架构可言的脚本。这并不是什么坏事,因为处理简单的网页行为,这足够了。但是 Node.js不是仅仅用来处理浏览器上面的事情的,它可以用来构建应用程序,也就是你必须考虑程序架构。当你用Node.js写代码的时候,你将深入到JS的对象模型中。我曾经很讨厌JS的对象模型,常常把我搞疯掉。但是Node.js和NPM(Node Package Manager)很好地利用了JS的原型系统,帮助我清楚了很多类/接口使用中的障碍,让我爱上了面向对象的JS编程。
4. 基于事件的 I/O
这是Node.js最有争议的一点。Node自身在一个线程中运行。是的,只有一个!你可以和传统的 Apache/PHP 的一堆实例对比一下。但是Node运行得很快速、高效。
这是怎么做到的?共享执行时间,把密集的IP处理放到别的线程处理。对于这一点的优点与缺点我可以写很长的文字来讨论,但这里我想说点实际的:当你用 Node.js写代码的时候,你需要考虑你的任务是否是慢的,或者I/O密集型的。使用异步的方法来处理回调或者使用事件处理器来处理执行慢的工作。
最主要的是,你要保证代码不让一个请求占据Node主线程太长事件,并且不给其他请求处理的机会。
5. 必须使用包管理!
老实说,你喜欢PEAR吗?你是不是把你大部分的代码都转换成PEAR或者PECL包了?并没有很多PHP程序员这么做,甚至很多人并不知道PEAR的存在。在Node.js的世界里,你必须把代码打包:
如果你是一个Drupal开发者,你会觉得Node的包管理系统有点像Drupal的模块,不同的是你现在面对的是开发者,不是建站者。
最后:Node.js是否合适你
在上文中我提到了很多Node.js的特性,而这些是我认为作为PHP开发者应该知道的。本文的基调也是基本趋向于肯定。Node是一个有趣的产品,其结构优雅。但是Node并不是万能药。
来源:http://www.tulaoshi.com/n/20160129/1482203.html
看过《所有PHP开发人员应该知道的Node.js的5个特点》的人还看了以下文章 更多>>