选择Nodejs的N个理由
选择Nodejs的N个理由
作者 马德奎 发布于 2014年9月25日
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对象的文档数据库时,这会极大地简化数据库和用户界面之间的数据传递任务。
选择Nodejs的N个理由的更多相关文章
- 选择或者放弃MySQL的理由
MySQL 作为一个开源数据库,自从被 Oracle 接管后,其发展前景就一直受到开发社区的关注,其中也有质疑,最近,两位开发者分别发表了选择和放弃MySQL 的理由,值得数据库相关人员参考. And ...
- Android IOS WebRTC 音视频开发总结(七九)-- WebRTC选择H.264的四大理由
本文主要介绍WebRTC选择H.264的理由(我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacke ...
- JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?一文带你厘清个中曲直,给你个选择SpringDataJPA的理由!
序言 Spring Data JPA作为Spring Data中对于关系型数据库支持的一种框架技术,属于ORM的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度. 本文档隶属于< ...
- Nodejs学习路线图
前言 用Nodejs已经1年有余,陆陆续续写了48篇关于Nodejs的博客文章,用过的包有上百个.和所有人一样,我也从Web开发开始,然后到包管 理,再到应用系统的开发,最后开源自己的Nodejs项目 ...
- 从现在开始使用nodejs开发的几点答疑
1.为什么要开始用nodejs, 而不是php 理由有三点: 因为我是前端程序员出身,nodejs都是用javascript写的,这样相当于前端和后端都使用javascript,开发更加有效率.当然很 ...
- NodeJS的一些总结
NodeJS的一些总结 Node 公开宣称的目标是 “旨在提供一种简单的构建可伸缩网络程序的方法”. 当前的服务器程序有什么问题?我们来做个数学题. 在 Java™ 和 PHP 这类语言中,每个连接都 ...
- nodeJs学习路线
转载自:http://blog.fens.me/nodejs-roadmap/ 前言 用Nodejs已经1年有余,陆陆续续写了48篇关于Nodejs的博客文章,用过的包有上百个. 和全部人一样,我也从 ...
- Nodejs的介绍
Nodejs的介绍 Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速,可扩展的网络应用程序的平台.Node.js使用事件驱动,非阻塞I/O模型,轻量.高效,可以完美 ...
- 初识NodeJS,一个基于GoogleV8引擎的Javascript运行环境
思考 首先我们来思考一个问题:我们都知道几乎所有现代主流浏览器都全面支持了ECMAScript 5.1版标准,而JavaScript的标准是ECMAScript.那么我们就容易认为JavaScript ...
随机推荐
- WCF----Stream对象限制操作
WCF支持Stream操作,尤其对于传递size过大的消息而言,如要考虑传递消息的效率,WCF推荐通过Stream进行操作.然而,WCF Stream操作规定了一些限制,在我们编写相关程序时,需要特别 ...
- Windows系统上安装多个版本jdk,修改环境变量不生效
本机已经安装了jdk1.6,而比较早期的项目需要依赖jdk1.5,于是同时在本机安装了jdk1.5和jdk1.6. 安装jdk1.5前,执行 java -version 得到java version ...
- C# 编码转换 UTF8转GB2312 GB2312转UTF8
/// <summary> /// GB2312转换成UTF8 /// </summary> /// <param name="text">&l ...
- 在网页中显示html代码
string str = "<div>aaa</div>"; this.Literal1.Text = string.Format("<pr ...
- 如果 if - 迈克.杰克逊的墓志铭
引用http://www.duwenzhang.com/wenzhang/yingyuwenzhang/20110215/171059.html IF you can keep your head w ...
- Linux学习笔记(6)Linux常用命令之帮助命令与用户管理命令
(1)man man命令用于获得命令或配置文件的帮助信息,英文原意为manual,所在路径为/usr/bin/man,其语法格式为: man [命令或配置文件] 注意:查看配置文件的帮助信息时无需绝对 ...
- SQL连接查询、变量、运算符、分支、循环语句
连接查询:通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 常用的两个链接运算符: 1.join on 2.union 在关系数据库 ...
- pig的各种运行模式与运行方式详解
一.pig的运行模式: Pig 有两种运行模式: Local 模式和 MapReduce 模式.当 Pig 在 Local 模式运行的时候, Pig 将只访问本地一台主机:当 Pig 在 MapRed ...
- static之用法
本文转载于http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html 在C语言中,static的字面意思很容易把我们导入歧途,其实它 ...
- SpringRMI解析4-客户端实现
根据客户端配置文件,锁定入口类为RMIProxyFactoryBean,同样根据类的层次结构查找入口函数. <bean id="rmiServiceProxy" class= ...