首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关于Rails和Node.js的说明

关于Rails和Node.js的说明
EN

Stack Overflow用户
提问于 2012-03-06 22:38:55
回答 4查看 8.9K关注 0票数 17

到目前为止,我一直在使用PHP,不管有没有框架,但一个月前我决定开始一些新的东西: Ruby和Rails,我发现它们非常简单,在工作方式上与PHP和一些PHP框架相似,但使用了更简单的语法和许多其他优点。

几天前,我开始阅读关于Node.js、Node.js和Rails的文章,“为什么node.js更好”……

我有点困惑,但我的目标是学习一些现代的东西,这些东西不会在几个月内过时,所以:

Rails/Ruby和Node.js以及Express.js等基于Rails/Ruby的框架(除了一个是用JS编写的,另一个是用Ruby编写的)之间的主要区别是什么?

使用Node.js和基于它的框架而不是像Rails这样的基于Ruby的解决方案的主要优缺点是什么?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-12 01:58:33

Node.js和Rails之间并没有太多的差异,所以它实际上并不重要。

Node.js能做的很多事情都可以通过像EventMachine和Pusher这样的东西在Rails中完成。因此,除非您非常熟悉Rails的局限性,并且知道您将挑战极限,否则您将很难做出一个经验丰富的Rails开发人员无法做到的事情。

在Node和Express中构建了应用程序后,我可以说,它们本身并不足以制作一个很吸引人的应用程序。如果你没有一个出色的前端UI来促进后端的可能性,它们可能看起来同样陈旧和陈旧。与其比较后端服务器,我认为真正令人惊叹的未来是在像Backbone.js这样的前端JavaScript框架中,它们在后端使用Express/Rails/Node.js。

我选择了使用Rails作为我的后端应用程序接口服务器的Backbone.js方向。因为在Rails中快速创建一个非常好的RESTful后端服务器非常容易。Rails还使得使用CoffeeScript和预编译/组织主干代码变得轻而易举。对于Rails来说,已经有一些不错的Backbone.js精华了。

Rails核心也能够承认并接受这样一个事实,即从逻辑上讲,前端JS是一个很好的下一步,他们一直在努力加强两者之间的联系。出于同样的原因,他们还致力于使Rails成为更好的API服务器,以便它可以更容易地与前端JS一起工作。Node.js和Express没有像Rails社区那样花太多精力来协调前端Rails MVC。

擅长使用JavaScript前端MVC和Rails作为后端,这会让你在找工作方面对这两个领域都有好处。您将能够轻松地进入Node.js项目,并通过您卓越的前端体验为该团队增加价值,您也可以在Ruby on Rails团队中随波逐流,为他们增加价值。

票数 35
EN

Stack Overflow用户

发布于 2012-03-09 22:58:44

正如official Node.js website所解释的那样:

Node.js是一个建立在Chrome的JavaScript运行时之上的平台,用于轻松构建快速、可扩展的网络应用程序。Node.js使用事件驱动的非阻塞I/O模型,这使得它变得轻量级和高效,非常适合跨分布式设备运行的数据密集型实时应用程序。

另一方面,Ruby on Rails official website说:

Ruby on Rails是一个开源的web框架,针对程序员的幸福感和可持续的生产力进行了优化。它允许您通过偏爱约定而不是配置来编写漂亮的代码。

鉴于此,我认为比较Ruby和Node.js更合适,但考虑到Ruby是编程语言而Node.js不是,这也是不太正确的。您可能会将JavaScript与Ruby进行比较,但我猜这不是您要问这个问题的意思:)

因此,对我来说,在Node.js about page上很好地描述了理解Node.js真正试图实现的关键点。Key Node.js idea (对我来说)是在下面的句子中描述的:

Ruby在设计上与

的Event Machine或Python等系统相似,也受其影响。Node进一步扩展了事件模型-它将事件循环表示为一种语言构造,而不是一个库。在其他系统中,总是有一个阻塞调用来启动事件循环。通常,在脚本开头通过回调定义行为,在脚本末尾通过阻塞调用启动服务器,如EventMachine::run()。在Node中没有这样的启动事件循环调用。节点只需在执行输入脚本后进入事件循环。节点在不再执行回调时退出事件循环。这种行为类似于浏览器javascript-事件循环对用户是隐藏的。

这应该使您能够使用JavaScript语法和回调函数作为基本的并发可运行单元,轻松地编写高度并发的程序,甚至不需要考虑并发。

票数 5
EN

Stack Overflow用户

发布于 2012-03-10 00:09:39

你担心Rails或Node.js会在一周内消失,这是没有根据的。Rails有一个很大的社区,并将存在很长一段时间,尽管目前(2012年初)它受到了一些人的反对。Node.js才刚刚开始,受到了如此多的关注,我认为有一天它在Rails级别上不会有任何问题。

也就是说,我一直在评估Node.js和Rails作为项目的选项,我选择Node.js而不是Rails的原因是:

  1. "The Rails Way“-在我(诚然有限)使用Rails的经验中,看起来你要么像Rails那样做,要么就会陷入痛苦的世界。Rails方式的一大部分是使用ActiveRecord模型。这样做的好处是,有很多gem可以很好地处理您的代码,因为它们知道您将使用ActiveRecord。缺点是你混合了你的数据访问和模型。我不是这个想法的粉丝,所以Rails的方式对我来说仍然有点..off.
  2. JavaScript是客户端web开发的关键部分,在客户端和服务器端使用它的想法很有趣。
  3. 我的项目有实时通信的需求,虽然我确信可以在Rails中完成,但是在节点处理能力方面似乎有很多积极的提法,socket.io是最好的选择。

在一天结束的时候,无论你选择哪一个,你都会有一段美好的时光&学习大量的新东西,这些东西将改变你编写代码的方式。如果你时间不紧,我建议你在两者中构建一个小的项目管理工具,看看你更喜欢哪一个。

无论哪种方式..祝好运!

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9585767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档