写点什么

选择 Nodejs 的 N 个理由

  • 2014-09-25
  • 本文字数:861 字

    阅读完需:约 3 分钟

Caleb Madrigal 是来自美国密尔沃基市的一名软件顾问。四年前,他在听说“将 JavaScript 用作服务器端语言”这样的说法时,认为那是一个荒唐的想法。有那么多服务器端语言可供选择,为什么要选 JavaScript?这是他当时的想法。但现在,他在当前的项目中选用了 JavaScript/Node.js。他近日撰文对自己的这一转变进行了解释。

首先,许多顶级企业都使用了Node.js,并且效果非常好,其中包括 PayPal Walmart Ebay Groupon LinkedIn 。这些企业在生产环境中大量使用了 Node.js。Madrigal 举了 PayPal 的例子。PayPal 针对他们网站上其中一个流量最大的应用,对比了它的 Node.js 版本和 Java 版本,发现前者在多个方面优于后者,并最终决定由 Java 切换到 JavaScript。InfoQ 对此有过报道

其次,Node.js 有一个很棒的包管理系统 NPM 。通过运行“npm install 包名”几乎可以安装任何包 / 库。另外,通过 package.json 文件可以跟踪依赖关系。因此,Node.js 库很容易克隆,运行“npm install”可以安装所有的依赖关系。

再次,Node.js 社区异常活跃,总是有新的库产生。这些库非常好用,使 JavaScript 成为一个非常高效的平台。

然后是 Node.js 的 REPL (read-evaluate-print loop)命令行。开发人员只需要在终端中输入“node”,就可以对 Node.js 进行逐行测试。

最后,Node.js 有一个很重要的特性:非阻塞函数。这就是为什么我们会在 Node.js 的代码中看到大量的 callbacks promises 。这种设计模式给 Node.js 带来了非常优异的性能。

此外,Node.js 的最大一个优点是:它是 JavaScript。任何人都知道 JavaScript,所以使用 Node.js 不需要学习一门新语言。有了它,开发人员可以只使用一种语言,浏览器端用 JavaScript,服务器端用 Node.js。在使用像 MongoDB CouchDB 这样存储 JSON 对象的文档数据库时,这会极大地简化数据库和用户界面之间的数据传递任务。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-25 07:333906
用户头像

发布了 256 篇内容, 共 90.4 次阅读, 收获喜欢 12 次。

关注

评论

发布
暂无评论
发现更多内容

Golang 程序实体

escray

学习 极客时间 Go 语言 5月日更

🚀【高并发技术专题】你需要了解的秒杀方案

码界西柚

高并发系统设计 高并发优化 5月日更

什么是线程安全?一文带你深入理解

程序猿阿星

线程安全 信号量 线程同步 互斥锁

面试被问 Spring cloud 上下文,可以这样回答

Damon

spring SpringCloud 5月日更

这5个浏览器工具,让你的上网舒适度提升150%

彭宏豪95

效率 工具 浏览器 脚本 5月日更

学习笔记之:孩子学习老是跑?日更好“难”

Nydia

学习

测试开发需要掌握哪些技术?

夏兮。

方法论 测试 CI/CD automation 语言 & 开发

架构训练营模块4作业

Geek_649372

架构训练营

后悔:要是当初那样就好了

石云升

思维方式 5月日更 后悔 人生选择

从 Netflix 到 Alibaba,Spring Cloud 更好了吗?

博文视点Broadview

Android 音视频采集那些事

LoveYFan

音视频

Impala架构剖析

大数据技术指南

大数据 5月日更

线性表,栈,队列,数组草图

鲁米

架构师实战营 模块四作业(设计千万级学生管理系统的考试试卷存储方案)

代廉洁

架构实战营

实时音视频通讯过程中声音的那些事儿

liuzhen007

音视频 5月日更

Redis - 列表

旺仔大菜包

redis

领域驱动设计101 - 实体

luojiahu

领域驱动设计 DDD

架构实战训练营 - 模块四课后作业

Johnny

架构实战营

谈一谈“数字资产”

小天同学

思考 数字时代 5月日更 数字文物 数字内容

没有发生GC也进入了安全点?这段关于安全点的JVM源码有点意思!

CoderW

Java 源码分析 JVM GC

想要做网页游戏怎么办 ?PixiJs 篇(四)

空城机

JavaScript 大前端 游戏 pixi 5月日更

(深入篇)漫游语音识别技术—带你走进语音识别技术的世界

攻城先森

深度学习 音视频 语音识别 5月日更

实时语音如何过质量关?

cv君

深度学习 算法 音视频 引航计划

带你认识时域、频域与Android系统Visualizer

Changing Lin

音视频 5月日更

架構實戰營 - 模塊 4 作業

Frank Yang

架构实战营

大数据中的工作流调度

五分钟学大数据

大数据 5月日更

学会这12个Java开发框架轻松拿到30K+

北游学Java

Java spring Netty mybatis 框架

项目管理学习到的教训

胡迪伦

项目管理

DDD这样落地

码农戏码

DDD

架构实战营 - 模块 4- 作业

请弄脏我的身体

架构实战营

架构实战营 - 模块 4- 作业

泄矢的呼啦圈

架构实战营

选择Nodejs的N个理由_架构/框架_马德奎_InfoQ精选文章