这集来聊什么是 Node.js
,看看 Node.js
是为了解决什么问题而生的。
先来聊聊 Node.js 诞生的故事。
Node.js
是 2009 的时候由大神 Ryan Dahl
开发的,Ryan 的最初工作是使用 Ruby On Rails
框架开发 Web 项目。后来他总结出一个经验,一个高性能服务器应用,应该是满足 事件驱动,非阻塞 I/O
模型的。
可以说有两点促成了 Node.js
的诞生。
JS
语言本身的特点就是事件驱动并且是非阻塞 I/O
的,跟他的思路正是绝配。V8 引擎
是开源的,而且性能特别棒。于是 Ryan 就基于 V8
开发了 Node.js
。注意 Node.js
听名字好像是个 JS
库,其实不是的,Node.js
事实上是用 C++
开发的。Node.js 是一个基于 Chrome V8 引擎的 Javascript 运行环境
所以说 Node.js
不是库,是一个运行环境
,或者说是一个 JS 语言解释器
。
Node.js
最初的定位是提升 Ryan 自己的日常工作效率,也就是用来写服务器代码的。但是后来没有想到的是 Node.js
在前端领域却大放异彩。
先说几句 Node.js
在服务器端的发展。Node.js
的诞生带给人们的是个大大的惊喜,传统上 Web 开发者
,前端用 JS
写,但是写服务器端代码的时候还必须用另外一种语言,类似 Ruby/Python/PHP/Java
等。但是 Node.js
出现之后,JS
前后端通吃了。如果去网上搜 Node.js
的资料,很多都是用 Node.js
去写服务器代码的。Node.js
开发后端,最著名的两个框架就是 Express
和 Koa
。
Node.js
今天也成为了 Web 前端开发
必不可少的基础设施。注意,Web 前端
的 JS
代码最终还是运行在浏览器中的,所以运行的时候,或者说在产品环境下,不依赖于 Node.js
。但是,Node.js
诞生以后,前端大爆发,类似 React
、Vuejs
这样的前端框架的开发环境变得非常强大,Node.js
是这些开发环境运行的基础。
手机App
,最主要分为iOS
和安卓阵营
。这两个阵营里,其中 iOS
使用 Objective C
或者 Swift
开发,安卓
使用 Java
开发。以前我们前端开发人员,如果想做 App,只能做 Web App
或者 混合App
。实际上就是 HTML 代码套了一层浏览器,打包而成的 App。但是这种 App 的用户体验不够友好。Node.js
的诞生,直接促成了 React Native
的诞生,现在使用 JS
,咱们前端开发人员也可以开发 原生 App
了。例如咱们 ITFun 的 App,就是使用了 React Native
来开发的,大家有兴趣,可以在官网底部下载了体验一下。
至于桌面软件,大家编程经常会用到的 VS Code
编辑器也是使用基于 Node.js
的 Electron
开发而来的。
除了 VS Code
外,还有很多知名的桌面应用都是使用这一套技术开发的。
这就是关于 Node.js
诞生,以及它如何从纯后端发展到如今无所不能的故事。
因为 Node.js
使用了非阻塞式 I/O 的模型
,这就使它的性能非常高。尤其是服务端开发,在处理高并发上有非常大的优势。咱们举几个例子来说明:
淘宝
,为了处理双 11 的高并发,目前已经将所有 PHP
代码迁移到了 Node.js
。Paypal
,从 Java
迁移到 Node.js
以后。每秒处理的请求数增加了两倍
,接口的请求时间减少了35%
,文件代码减少44%
,开发效率提高了两倍
。LinkedIn(领英)
,4.5亿
用户量,由 Ruby on Rails
切换到了 Node.js
。某些场景下,性能提高20倍
,服务器由30个
减少到了3个
。Uber
,使用 Node.js
每天处理20亿个
远程过程调用 (Remote Procedure Call,RPC)。以上这些案例,都是 Node.js
性能强大的证明,足以证明 Node.js
的成功。
已添加到喜欢了