Mat*_*zzi 17 ruby ruby-on-rails node.js
到目前为止,我总是在有或没有框架的情况下使用PHP,但一个月前我决定开始新的东西:Ruby和Rails,我发现它们非常简单,类似于PHP和一些PHP框架,它们如何工作但使用更简单语法和许多其他优点.
几天前我开始阅读Node.js,Node.js vs Rails,"为什么node.js更好"......
我有点困惑,但我的目标是学习一些现代化的东西,这些东西在几个月内不会过时,所以:
Rails/Ruby和Node.js之间的主要区别是什么?基于它的框架如Express.js(除了一个用JS编写,另一个用Ruby编写)?
使用基于它的Node.js和框架而不是像Rails这样基于Ruby的解决方案有哪些主要优点/缺点?
谢谢!
Jos*_*ber 35
Node.js和Rails之间没有足够的差异,因为它实际上很重要.
很多Node.js的什么可以做,可以拉断在Rails的事情喜欢EventMachine的和推动者.因此,除非你真的熟悉Rails的局限性,并且知道你将要突破界限,否则你很难做出经验丰富的Rails开发人员无法做到的事情.
在Node和Express中构建应用程序我可以说仅靠它们并不足以构建性感的应用程序.如果你没有一个出色的前端UI来促进后端可能性,它们看起来就像旧的和陈旧的一样.而不是比较后端服务器,我认为做出惊人事情的真正未来是在Backbone.js等前端JavaScript框架中,后端使用Express/Rails/Node.js.
我已选择使用Rails作为后端API服务器向Backbone.js方向发展.因为在Rails中快速创建一个非常好的RESTful后端服务器非常容易.Rails还使用CoffeeScript和预编译/组织Backbone代码变得轻而易举.Rails已经有了不错的Backbone.js宝石.
Rails核心也能够承认并接受这样一个事实,即前端JS MVC在逻辑上是一个很好的下一步,他们一直在努力加强两者之间的联系.出于同样的原因,他们还努力使Rails成为更好的API服务器,以便它可以更容易地使用前端JS.Node.js和Express并没有像Rails社区那样花费太多精力与前端JavaScript MVC进行协调.
良好的JavaScript前端MVC和Rails作为后端使你在获得工作方面也很适合两个世界.您可以轻松地跳转到Node.js项目,并通过您卓越的前端体验为该团队增加价值,您还可以在Ruby on Rails团队中轻松应对并为其增加价值.
正如官方Node.js网站解释的那样:
Node.js是一个基于Chrome JavaScript运行时的平台,可轻松构建快速,可扩展的网络应用程序.Node.js使用事件驱动的非阻塞I/O模型,使其轻量级和高效,非常适合在分布式设备上运行的数据密集型实时应用程序.
另一方面,Ruby on Rails官方网站上说:
Ruby on Rails是一个开源的Web框架,针对程序员的快乐和可持续的生产力进行了优化.它允许您通过支持约定优于配置来编写漂亮的代码.
鉴于此,我认为比较Ruby和Node.js更合适,但即使这是不正确的,因为Ruby是编程语言而Node.js不是.您可以将JavaScript与Ruby进行比较,但我想这不是您要问的问题:)
因此,对于我来说,理解Node.js真正想要完成什么的关键点在Node.js关于页面上有详细描述.关键Node.js的想法(对我来说)在这句话中描述:
Node在设计上类似于Ruby的Event Machine或Python的Twisted等系统.Node进一步采用事件模型 - 它将事件循环呈现为语言结构而不是库.在其他系统中,始终存在阻塞调用以启动事件循环.通常,在脚本开头通过回调定义行为,最后通过阻塞调用(如EventMachine :: run())启动服务器.在Node中没有这样的start-the-event-loop调用.节点在执行输入脚本后简单地进入事件循环.当没有更多回调要执行时,节点退出事件循环.此行为类似于浏览器javascript - 事件循环对用户隐藏.
这应该使您能够轻松编写高度并发的程序,而不必考虑使用JavaScript语法和回调函数作为基本并发可运行单元的并发性.
| 归档时间: |
|
| 查看次数: |
8799 次 |
| 最近记录: |