ruby-on-rails – 什么时候线程框架比事件驱动框架更好? (即什么时候rails比node.js好?)

我理解什么是线程框架(Rails,Django,Symfony2,…).我理解事件驱动的框架是什么(Node.js,EventMachine,Twisted,……)以及为什么它对于实时,聊天,速度等都很好…另外它们似乎不会对正常用例造成问题.所以:

>事件驱动框架的缺点是什么?
>我什么时候应该更喜欢Rails到Node.js?
>为什么不是所有使用EventMachine,Twisted或Node.js编写的新Web服务器?
>像Django或Rails这样的着名框架会成为事件驱动还是死亡?

解决方法

So where are the drawbacks of event-driven frameworks?

>熟悉.因为事件驱动的Web编程是如此不同,所以在程序员熟悉之前还需要一段时间.当你在截止日期前工作时,使用你知道的东西会更容易.
>图书馆支持. Node拥有大量的模块,但要想赶上RubyPython还有很长的路要走.更新:Node now has more published modules available than Python or Ruby.
>部署. IT人员习惯于线程化框架.要利用事件驱动的框架,您需要从上到下进行异步.现在你可以在Node.js中开发,但是你能够有效地部署它,还是你必须管理自己的服务器?
>毫无根据的担忧.看似问题的事情,但不是真的:

>事件驱动的编程对CPU密集型应用程序不利:原因是CPU密集型计算会阻塞服务器.这是完全正确的,但实际上,它通过生成另一个进程并将其视为I / O来克服,例如,通过使用Node的child_process.exec.
>事件驱动编程仅适用于需要高并发性的应用程序:原因在于事件驱动编程比传统的Web应用程序编程“更难”,因此除非您有充分的理由,否则不值得做.我个人认为这不是案例 – 事件驱动的编程并不困难,但它是非常不同的.在某些时候,一大批程序员将熟悉事件驱动的方法,这种担忧将会消失.
>事件驱动的编程是一堆嵌套的回调.当您第一次学习它时可能会这样,但最终您将发现如何以可读的方式构建代码.

>文档. Node及其第三方库的文档非常糟糕,通常只包含README.md.来自Python世界,我们习惯于优秀的文档,这是一个很大的缺点.这种情况正在逐渐好转(我们需要更多文档like this).

When should I prefer Rails to Node.js?

>当您或您的团队只是喜欢Ruby而非JavaScript时.
>当您或您的团队不熟悉Node并且您需要完成工作时.
>当您需要使用Node尚未拥有的Rails中的功能时.
>当您需要部署到现有的基于Rails的基础架构时.
>当您必须说服管理层您应该使用Node.js时,如果项目失败,您不希望成为堕落者.

Why all new web server are not written with EventMachine,or Node.js?

往上看.

Will famous framework as Django or Rails turn event-driven or die?

Django和Rails将会存在很长时间.这些框架中有很多应用程序,没有理由重写它们.并且有一个庞大的人才库,在开发新的Web应用程序时经常需要考虑.

(但是请看Django的首席开发人员this Quora answer,支持Node).

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...