微信号:infoqchina

介绍:有内容的技术社区媒体

【实战】选择Nodejs的N个理由

2014-09-27 11:22 InfoQ

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 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 程序员日常漫画 82 :程序员之间为什么会吵起来 重磅|Gary Marcus:人工智能若想取得突破,需要认知科学和工程学的联姻 5G网络2020年有望商用,最先体验到的或是亚洲国家 报名|奔跑吧,OpenStack!这次我们讲DevOps [品牌上海-百集特别报道]数据为先,做“云”端的服务者