关于Node.js:所有PHP开发人员应该知道的5点 - 面向对象网 php 学习 对象 - 面向对象技术开发

面向对象技术开发

会员投稿 投稿指南 站长资讯通告:
您的位置: 首页 > OOP语言 > PHP > 正文

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

来源: www.bianceng.cn 阅读:

我最近开始和Node.js打交道。以前做PHP开发,特别是Drupal,我发现向Node.js转移很容易,而且过程很愉快!但是我也需要学会从 一些不同的角度思考。下面我列出了5项我认为PHP工程师应该知道的Node.js特点。

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是面向对象的(虽然比较奇怪)

我喜欢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是否合适你

我提到了很多PHP开发者应该知道的,Node.js的特点。互联网上有成千上万关于Node.js的文章,大部分是正面的。Node是一个有趣的 产品,它有一个优雅的架构。但是Node并不是万能药。我并不认为Node能够马上替代PHP。我只是认为PHP开发者都应该学习一下Node.js。 它很简单,很有用。

Tags:
相关文章列表: