关于 Node.js:所有PHP开发人员应该知道的5点

来源:互联网 发布:手机淘宝店怎么注册 编辑:程序博客网 时间:2024/05/29 11:41
1. Node.js构建于Chrome的JavaScript引擎 

我们知道,Google的Chrome浏览器有一个非常快速的JavaScript引擎,叫做V8。这个JS引擎可以被独立出来。Node.js就是建立在V8之上的。这也是为什么Node.js会运行得如此之快。这对于开发者来说,有几个好处: 

  • 你不需要重新学习一门新的语言,它就是JS。我常常查看Chrome和Mozilla的JS文档,他们完全通用。
  • 受益于V8的 JIT(Just In Time,即时)编译功能,Node.js应用的运行速度可以和本地代码媲美。对比测试表明,Node.js 要比 PHP 和Ruby 快很多。
  • 随着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的世界里,你必须把代码打包: 

  • Node.js的设计就是一个最精简的框架。PHP核心的90%的东西都不会在Node.js核心中出现。例如,数据库驱动、邮件发送库、HTML支持等等,都不在核心库中。
  • Node.js的核心就是一个模块化的框架。你会发现它很好用!
  • NPM(Node Package Manager)是你必备的工具。有了它,你就可以下载Node.js的各种代码包、驱动、解析器、编辑器、服务器等。
  • 创建并且发布你的代码包非常简单。我在使用Node工作不久就发布了我的第一个代码包。
如果你是一个Drupal开发者,你会觉得Node的包管理系统有点像Drupal的模块,不同的是你现在面对的是开发者,不是建站者。 

最后:Node.js是否合适你 

在上文中我提到了很多Node.js的特性,而这些是我认为作为PHP开发者应该知道的。本文的基调也是基本趋向于肯定。Node是一个有趣的产品,其结构优雅。但是Node并不是万能药。我并不认为Node能够马上替代PHP。我只是认为PHP开发者都应该学习一下Node.js。它很简单,很有用。 
原创粉丝点击