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

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

我最近开始和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。它很简单,很有用。

 

目录
相关文章
|
4月前
|
负载均衡 监控 JavaScript
pm2 工具在 Node.js 开发和部署中的重要作用
pm2 工具在 Node.js 开发和部署中的重要作用
57 0
|
12天前
|
JavaScript 前端开发 IDE
【TypeScript技术专栏】TypeScript与Node.js后端开发
【4月更文挑战第30天】TypeScript在Node.js后端开发中日益重要,作为JavaScript超集,它提供静态类型检查和面向对象编程,增强代码可靠性和维护性。集成TypeScript能带来类型安全、更好的IDE体验、易于维护的代码以及增强工具支持。通过安装TypeScript编译器、编写TypeScript文件、配置TSconfig,开发者可以在Node.js项目中利用其高级特性,提高代码质量和开发效率。实践案例显示,TypeScript能确保路由处理器的类型正确,降低错误率。随着社区发展,TypeScript成为提升Node.js开发体验的推荐选择。
|
17天前
|
JavaScript 前端开发 关系型数据库
node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染
node+vue3+mysql前后分离开发范式——实现视频文件上传并渲染
26 1
|
17天前
|
JavaScript 前端开发 API
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查
36 1
|
19天前
|
Web App开发 JavaScript 前端开发
js开发:请解释什么是Node.js,以及它的应用场景。
Node.js是基于V8引擎的JavaScript运行时,用于服务器端编程。以其事件驱动、非阻塞I/O模型著称,适用于高并发和实时应用。常见用途包括:构建Web服务器、实时应用(如聊天)、API服务、微服务、工具和命令行应用,以及搭配Electron开发桌面软件。
20 1
|
2月前
|
Web App开发 JavaScript 前端开发
js开发:请解释什么是Node.js,以及它的应用场景。
Node.js是基于V8的JavaScript运行时,用于服务器端编程。它的事件驱动、非阻塞I/O模型使其在高并发实时应用中表现出色,如Web服务器、实时聊天、API服务、微服务、工具和跨平台桌面应用(使用Electron)。适用于高性能和实时需求场景。
20 4
|
2月前
|
Web App开发 JavaScript 前端开发
深入浅出:Node.js 在后端开发中的应用与实践
【2月更文挑战第13天】本文旨在探讨Node.js这一流行的后端技术如何在现代Web开发中被应用以及它背后的核心优势。通过深入分析Node.js的非阻塞I/O模型、事件驱动机制和单线程特性,我们将揭示其在处理高并发场景下的高效性能。同时,结合实际开发案例,本文将展示如何利用Node.js构建高性能、可扩展的后端服务,以及在实际项目中遇到的挑战和解决方案。此外,我们还将讨论Node.js生态系统中的重要工具和库,如Express.js、Koa.js等,它们如何帮助开发者快速搭建和部署应用。通过本文的探讨,读者将获得对Node.js在后端开发中应用的深入理解,以及如何有效利用这一技术来提升开发效率
124 2
|
3月前
|
JavaScript iOS开发 MacOS
掌握NVM、NRM和NPM:Node.js开发的利器
掌握NVM、NRM和NPM:Node.js开发的利器
76 0
|
3月前
|
资源调度 JavaScript 开发工具
从npm慢如蜗牛到飞驰如光:nrm加速你的Node.js开发
从npm慢如蜗牛到飞驰如光:nrm加速你的Node.js开发
130 0
|
4月前
|
小程序
微信小程序|Springboot+Vue+Node开发实现医疗预约挂号系统(二)
微信小程序|Springboot+Vue+Node开发实现医疗预约挂号系统