阅读更多

0顶
0踩

编程语言
本文作者以前做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 是面向对象的 (类似于古怪的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。它很简单,很有用。

Via  Node.js: Five Things Every PHP Developer Should Know

0
0
评论 共 2 条 请登录后发表评论
2 楼 as3291363 2012-06-18 17:31
我感覺難...
1 楼 leric 2012-02-07 16:25
我倒觉得Node已经能取代PHP了

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 趣学 Node.js:Node.js 是个啥?

    你有没有假装不了解 Node.js 我不知道,但我就当作你不了解了。本节会跟大家详细剖析一下 Node.js 到底是个什么东西。在它官网上是这么讲的:翻译过来:Node.js 是一个开源的、跨平台的 JavaScript 运行时环境。这里...

  • Node.js框架-Node.js开发

    $ npm install -g total.js Total.js代码编辑器Total.js CMS Total.js Eshop Total.js Wiki Total.js Flow Total.js Flowboard Total.js Messenger Total.js仪表板Total.js BlogEngine Total.js SuperAdmin Total ....

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

    我最近开始和Node.js打交道...下面我列出了5项我认为PHP工程师应该知道的Node.js特点。 1. Node.js 是构建于Chrome的JavaScript引擎的Google的浏览器Chrome,有一个非常快速的JavaScript引擎,叫做V8。这个JS引擎...

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

    我最近开始和Node.js打交道。...下面我列出了5项我认为PHP工程师应该知道的Node.js特点。 1. Node.js是构建于Chrome的JavaScript引擎的 Google的浏览器Chrome,有一个非常快速的JavaScript引擎,叫做V8...

  • 【VUE】1、安装node.js

    Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型,让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、Perl、...

  • Node.js开发概述

    Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件驱动、非阻塞式I/O模型, [1] 让JavaScript 运行在服务端的开发平台,它让JavaScript成为与PHP、Python、...

  • Total.js Framework v4是使用纯JavaScript编写的Node.js平台框架-Node.js开发

    Total.js框架v4是用纯JavaScript编写的Node.js platfrom框架,类似于PHP的Laravel或Python的Django或ASP.NET MVC。 它可以用作Web,桌面,服务或IoT应用程序。 Node.js框架Total.js框架v4是用纯JavaScript编写的Node...

  • Node.js-Total.js是一个采用纯JavaScript开发用于Node.js平台的框架

    Total.js是一个采用纯JavaScript开发用于Node.js平台的框架。类似于PHP的Laravel、Python的Django、ASP.NET MVC。它能够用于开发web、桌面、服务和IoT平台。

  • nodejs-phplike:将PHP移植到Node.js

    Node.js-phplike 中文自述文件: : 该项目的目的是为Node.js上的Web开发提供一些PHP同步功能。 Node.js是一种事件驱动的语言,它具有许多异步I / O方法。 异步功能对于Web系统来说不是一个坏方法,它可以帮助...

  • mootools_使用MooTools和Node.js的ServerSide JavaScript

    到目前为止,上述解决方案仅在Node.js上进行了测试,但它也应该在其他SSJS实现上也可以使用 应用程序和模块之间的差异 (Difference Between Applications and Modules) One thing that I want to highlight is that...

  • 写给php开发者的NODE.js学习指南

    本书假设你是一名有经验的PHP开发人员,并且已经开始学习如何编写Node.js。本书介绍了PHP和Node.js这两种语言惊人的相似之处,并详细讲解了如何将整个PHP Web应用转换为Node.js。通过对比一些PHP和Node.js的特性,你...

  • Node.js vs PHP:哪个更适合Web开发?

    Web开发似乎是一个不断变化的领域。 新技术和工具会定期出现,因此应用程序程序员和开发人员必须面对这一难题。... 之前,Javascript(Node.Js的基础)没有与PHP重叠。 Javascript用于构建前端应用程序,...

  • 【Nodejs】Node.js简介

    Node 的重要性已经不言而喻,很多互联网公司都已经有大量的高性能系统运行在 Node 之上。Node 凭借其单线程、异步等举措实现了极高的性能基准。此外,目前最为流行的 Web 开发模式是前后端分离的形式,即前端开发者...

  • Node.js详解(二):Node.js与JS的关系

    是 Node 选择了 JavaScript,不是 JavaScript 发展出来了一个 Node。 NodeJS的作者说,他创造NodeJS的目的是为了实现高性能Web服务器,他首先看重的是事件机制和异步IO模型的优越性,而不是JS。但是他需要选择一种...

  • 第一节:Node.js 开发之环境搭建

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

  • 一个授权库,它支持Node.js中的访问控制模型,如ACL,RBAC,ABAC-Node.js开发

    node-casbin是一个用于Node.JS项目的功能强大且高效的开源访问控制库。 它为基于各种访问控制模型的授权实施提供支持。 Casbin支持的所有语言:Casbin jCasbin节点-Casbin PHP-Casbin生产就绪生产就绪生产就绪生产...

  • 《CSS样式表行为手册》中文chm最新版本

    CSS样式表里重点讲述“行为”功能的一本CHM参考手册,很实用方便,内容也很丰富,收藏一下哦!

  • 1-中国各地区-固定资产投资-房地产开发投资情况(1999-2020年)-社科数据.zip

    中国各地区固定资产投资中的房地产开发投资数据集涵盖了1999至2020年的详细统计信息。该数据集包含了全国各城市地级市州的房地产开发投资情况,这些数据对于理解中国城市化进程、经济发展和房地产市场趋势至关重要。数据集中的指标包括年份、地区以及对应的房地产开发投资额(以亿元为单位),这些数据来源于中国区域统计年鉴及各省市统计年鉴。通过这些数据,研究者和决策者可以深入了解不同地区的经济动态,评估房地产市场的健康状况,并据此制定相应的政策和战略。这些数据不仅有助于宏观经济分析,还能为房地产开发商提供市场进入和扩张的决策支持。

Global site tag (gtag.js) - Google Analytics