【外刊IT评论网】为什么我们要从 NodeJS 迁移到 Ruby on Rails

标签: node.js Rails nodejs 技术技巧 | 发表时间:2012-05-30 00:27 | 作者:Aqee
出处:http://www.aqee.net

声明:这篇文章绝不是一篇讨论 NodeJS 和 Ruby on Rails 孰优孰略的檄文。它描述的只是我们做决策过程中的一些思考、决策背后的原因。两种框架都非常优秀,都出色的完成了它们的设计初衷,这也是为什么我们部分的模块仍然运行在NodeJS上的原因。

我是NodeJs的大粉丝,认为这是一项让人非常兴奋的技术,相信它会变的越来越流行。我对这项技术非常的欣赏——尽管我们最近把 Targeter App从NodeJS迁移到了Ruby on Rails。

我们当时使用NodeJS开发它的原因很简单。我有一个程序包,能很快的将我们的应用弄上线(我们花了54小时做这个事情),相比起Ruby,我更常使用的是JavaScript。因为我们的技术架构牵涉到NongoDB,我的这些特长只有在NodeJS环境里才会有意义。然而,随着应用规模的增长,我认识到,选择NodeJS来实现这个应用是个错误的选择。下面让我来概述一下其中的原因。

NodeJS很适合做那些有大量 短生命期请求的应用。对于传统的CRUD应用,它也很好,但不是非常的理想。在PHP,Ruby,Python语言里都有很成熟、优化的很好的框架来处理这种应用。NodeJS里的所有东西都异步执行的理念对于CRUD应用来说没有任何效果。其它语言里的流行的框架能提供非常好的缓存技术,你所有的需求都能满足,包括异步执行。

NodeJS是一种非常 年轻的技术框架,它的周边程序库都不是很成熟。我说这些并没有任何对那些代码捐赠者冒犯的意思,他们很优秀,开发出来很多优秀的程序库。然而,大部分程序库需要改进,而NodeJS的这种快速成长的环境意味着每一版升级中都带有大量的变化;当你使用一种前沿技术时,你十分有必要尽快的紧跟最新的版本。这给创业型的企业带来了很多的麻烦。

另外一个原因是关于 测试。NodeJS里的测试框架还不错,但跟Django或RoR平台上的相比还是差一些。对于一个每天都有大量的代码提交、并且在一两天内就要发布的应用来说,程序不能出问题是至关重要的,否则你为此辛苦的努力变得得不偿失。没有人愿意花一天的时间改一些弱智的bug。

最后一点,我们需要的是一种能 缓存一切的东西,并且要尽快的实现。尽管我们的应用在增长,每秒钟有上万次的hits,但绝不会出现很大量的访问请求;这不是一个聊天程序!主程序最多时也就达到1000RPS,这样的负载对于Ruby on Rails和Nginx来说算不了什么。

如果你现在还在读这篇文章,那你已经看到了我所有要说的了,你也许非常坚持的想知道我们的应用什么地方还在使用NodeJS。是这样的,我们的应用由两部分组成。一是界面,用户看到的这部分,二是负责报表管理的部分,以及做日志的功能。后者是NodeJS的一个最佳使用场景,存在有大量的短周期的请求。这部分的动作需要尽快的执行完成,甚至要在我们的数据推送还没有完成之前。这很重要,当请求执行还未结束,浏览器继续等待响应结束,这会影响用户使用体验。NodeJS的异步特性救了我们。数据要么被存入数据库,要么被处理掉,当请求一旦执行完成,浏览器就可以开始做其它重要的事情了。


本文来自 外刊IT评论网( www.aqee.net),原始地址: 为什么我们要从 NodeJS 迁移到 Ruby on Rails


相关 [it nodejs ruby] 推荐:

LinkedIn缘何抛弃Ruby,转投NodeJS怀抱?

- - ITeye资讯频道
记得在2012年10月份的时候,鉴于性能和可扩展性方面的原因,LinkedIn将其移动设施的后台Ruby on Rails替换成了Node.js. 那么为什么要做出这样的决策,Node.js又比Ruby强在哪里呢. Node.js——基于JavaScript的服务器端软件平台,它的作用主要是用于构建可伸缩的网络应用程序,在过去的几年里它已经风靡于全球众多开发商.

【外刊IT评论网】为什么我们要从 NodeJS 迁移到 Ruby on Rails

- - 外刊IT评论网
声明:这篇文章绝不是一篇讨论 NodeJS 和 Ruby on Rails 孰优孰略的檄文. 它描述的只是我们做决策过程中的一些思考、决策背后的原因. 两种框架都非常优秀,都出色的完成了它们的设计初衷,这也是为什么我们部分的模块仍然运行在NodeJS上的原因. 我是NodeJs的大粉丝,认为这是一项让人非常兴奋的技术,相信它会变的越来越流行.

了解Ruby Gems

- Jacky - Reborn
所谓RubyGem,就是一个个软件包,通常被简称为“gem”. 通常一个Gem里包含一个Ruby应用程序或者一个Ruby程序库. 而RubyGems软件本身允许用户在自己的系统中轻松地下载、安装、操作Gems. 以下两个网址无论如何都应该放到自己的收藏夹里:. 最著名的Gem之一,当然是Rails——当我们安装Rails的时候,使用的命令行是:.

开始Ruby

- TheLover_Z - 博客园-首页原创精华区
我的上一篇为什么要学动态语言和大家分享了一些心得,如果有人因此想试试动态语言,哪怕是一点点,我也很高兴,毕竟自己写的东西还有点意义. 俗话说,万事开头难,但是开始用动态语言一点也不难,还是以ruby为例. 1.首先来看看这个网站, http://tryruby.org/. 顾名思义,这个网站的目的就是让大家试试Ruby,我觉得做的比较好的就是它有一步步的教程,只要照着它的提示一步步往下,就能领略Ruby的魅力.

nodejs快速入门

- AreYouOK? - 淘宝数据平台与产品部官方博客 tbdata.org
主要介绍了一下node.js的发展, 现状, 安装, 使用.

NodeJS学习笔记

- - Web前端 - ITeye博客
今天开始学习NodeJS,在这里做个笔记,记录一下我的学习历程,也方便以后参考. Node.js® 是一个基于  Chrome V8 引擎 的 JavaScript 运行时. 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.

Ruby On Rails 4 hello world,Ruby On Rails上手

- - CSDN博客Web前端推荐文章
有机会再试一试Rails了,只是原来接触的是2,现在已然变成了4,似乎现在的安装比原来会快些. 似乎这就是当前的最新版本. 似乎这就是诸如Django、Rails这类对于轻量级网站的数据库要求. 其他可以看情况安装,如openSUSE. 可以直接用rails生成. 这样的话打开  http://localhost:3000 就可以看到,Rails的欢迎界面Welcome aboard,有点类似于Django-CMS的小马哥~~.

安装rails(ruby on rails)

- - BlogJava_首页
  记得两年前使用ror做网站,自动生成功能记忆犹新,只是当时网络知识实在缺乏,体会不到其中的乐趣. 现在了解的很多了,书也有两本,一直想重新体验最新版做个网站. 安装这个过程实在有点坑爹,查找网上若干ror的书包括2012年版的书,按照上面的步骤都没法安装完成,搞得我一会在linux下试验,一会在windows下试验,都没成功,只好放下.

NodeJS与Mysql的交互

- - CSDN博客推荐文章
把Mysql Module装到 NodeJS中.   JS脚本 mysqlTest.js. //加载mysql Module  .   //要创建的数据库名  .     //要创建的表名  . 作者:qxs965266509 发表于2013-8-17 9:47:35 原文链接. 阅读:0 评论:0 查看评论.

[译]你不知道的NodeJS

- - 掘金前端
更新:这篇文章现在是我的书《Node.js进阶》的一部分. 在 jscomplete.com/node-beyond…中阅读此内容的更新版本以及有关Node.js的更多信息. 在今年的Forward.js会议(关于JavaScript的会议)上,我分享了题为“你不知道的NodeJS”的演讲. 在那次演讲中,我向观众提出了一系列有关Nodejs运行时的问题,大多数有技术背景的观众无法回答其中大多数问题.