写点什么

选择 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:333745
用户头像

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

关注

评论

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

花火交易所软件开发|花火交易所系统APP开发

系统开发

设计模式【1.2】-- 枚举式单例有那么好用么?

秦怀杂货店

设计模式

作业-第10周

arcyao

架构师训练营:通达同城快递架构设计文档

9527

讨论话题 进程通信方式和锁关系

程序员老王

高并发

WLAN网络规划和优化的必备知识点

LeetCode题解:42. 接雨水,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

shark defi鲨鱼智能合约系统软件APP开发

系统开发

架构师训练营第 10 周学习总结

菜青虫

极客大学架构师训练营

Mybatis【11】-- Mybatis Mapper动态代理怎么写?

秦怀杂货店

mybatis mybatis源码

工具词典:PARA方法论

lidaobing

PKM Tiago Forte PARA 28天写作

架构师训练营第十周作业一

韩儿

架构师训练营第十周作业二

韩儿

北漂码农的我,把在大城市过成了屯子一样舒服,哈哈哈哈哈!

小傅哥

小傅哥 技术人 打工人 七日更 落户

设计模式【1】-- 单例模式到底几种写法?

秦怀杂货店

设计模式

设计模式【1.1】-- 你想如何破坏单例模式?

秦怀杂货店

设计模式 单例 23种设计模式

第五周总结

胡益

架构师训练营第十周作业

李日盛

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

秦怀杂货店

mybatis

设计模式【1.3】-- 为什么饿汉式单例是线程安全的?

秦怀杂货店

单例模式

设计模式【2】-- 简单工厂模式了解一下?

秦怀杂货店

设计模式 工厂模式 工厂方法模式

模块分解总结

Mars

生产环境全链路压测建设历程 21:某快递 A 股上市公司的生产压测案例之彩蛋2前言

数列科技杨德华

全链路压测 七日更

Hadoop编程实战:HDFS API编程

罗小龙

Java 大数据 hdfs 编程 实践

JVM笔记【1】-- 运行时数据区

秦怀杂货店

JVM JVM笔记

10张图带你入门分布式链路追踪系统原理

爱笑的架构师

七日更

JDK、JRE、JVM,是什么关系?

小傅哥

jdk JVM 小傅哥 七日更 jre

MGR集群相关简介

Simon

MySQL 七日更

架构2期 - 第十周作业(1)

浮生一梦

极客大学架构师训练营 第十周 2组

架构师训练营第 10 周课后练习

菜青虫

极客大学架构师训练营

dubbo服务框架图&时序图

Mars

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