Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 什么时候线程框架比事件驱动框架更好?(例如,rails何时比node.js更好?)_Ruby On Rails_Django_Node.js_Frameworks_Event Driven - Fatal编程技术网

Ruby on rails 什么时候线程框架比事件驱动框架更好?(例如,rails何时比node.js更好?)

Ruby on rails 什么时候线程框架比事件驱动框架更好?(例如,rails何时比node.js更好?),ruby-on-rails,django,node.js,frameworks,event-driven,Ruby On Rails,Django,Node.js,Frameworks,Event Driven,我理解什么是线程框架(Rails、Django、Symfony2等等)。我了解什么是事件驱动框架(Node.js、EventMachine、Twisted等),以及为什么它对实时、聊天、速度等都很好,此外,它们似乎不会给正常用例带来问题。因此: 事件驱动框架的缺点是什么 什么时候我应该更喜欢Rails而不是Node.js 为什么不是所有新的web服务器都使用EventMachine、Twisted或Node.js编写 像Django或Rails这样的著名框架会成为事件驱动还是消亡 那么,事件

我理解什么是线程框架(Rails、Django、Symfony2等等)。我了解什么是事件驱动框架(Node.js、EventMachine、Twisted等),以及为什么它对实时、聊天、速度等都很好,此外,它们似乎不会给正常用例带来问题。因此:

  • 事件驱动框架的缺点是什么
  • 什么时候我应该更喜欢Rails而不是Node.js
  • 为什么不是所有新的web服务器都使用EventMachine、Twisted或Node.js编写
  • 像Django或Rails这样的著名框架会成为事件驱动还是消亡
那么,事件驱动框架的缺点在哪里呢

  • 熟悉度。因为事件驱动的web编程非常不同,程序员需要一段时间才能适应它。当你在截止日期前工作时,使用你知道的东西会更容易,这是有效的
  • 库支持。Node拥有数量惊人的模块,但要赶上Ruby和Python还有很长的路要走。更新:
  • 部署。IT人员习惯于使用线程化框架。要利用事件驱动框架,您需要自上而下异步。现在您可以在Node.js中开发,但是您是否能够有效地部署它,或者您必须管理自己的服务器
  • 毫无根据的担忧。看似问题但实际上并非问题的事情:
    • 事件驱动编程不适合CPU密集型应用程序:原因是CPU密集型计算会阻塞服务器。严格来说,这是正确的,但实际上,可以通过生成另一个进程并将其视为I/O来克服,例如,通过使用节点的
      child\u process.exec
    • 事件驱动编程仅适用于需要高并发性的应用程序:这里的原因是,事件驱动编程比传统的web应用程序编程“更难”,因此,除非你有充分的理由,否则不值得这么做。我个人不认为这种情况下,事件驱动编程不再困难,但它是非常不同的。在某种程度上,大量的程序员将熟悉事件驱动的方法,这种担忧将消失
    • 事件驱动编程是一堆嵌套回调。当您第一次学习它时,这可能是正确的,但最终您将发现如何以可读的方式构造代码
  • 文档。节点及其第三方库的文档非常糟糕,通常只包含一个
    README.md
    。来自Python世界,我们习惯于使用优秀的文档,这是一个很大的缺点。这一点正在慢慢改善(我们需要更多的文档)
  • 什么时候我应该更喜欢Rails而不是Node.js

    • 当您或您的团队只喜欢Ruby而不喜欢JavaScript时
    • 当您或您的团队不熟悉Node并且需要完成工作时
    • 当您需要使用Rails中该节点还没有的功能时
    • 当您需要部署到现有的基于Rails的基础设施时
    • 当您必须说服管理层您应该使用Node.js,但如果项目失败,您不想成为承担责任的人
    为什么所有新的web服务器都不是用EventMachine、Twisted或Node.js编写的

    见上文

    著名的框架Django或Rails会变成事件驱动还是消亡

    Django和Rails将存在很长一段时间。这些框架中有很多应用程序,没有理由重写它们。还有一个庞大的人才库,这通常是开发新web应用程序时的一个考虑因素


    (但请看Django的首席开发人员,支持Node)。

    Ahhh,那么在这种情况下,我们需要一些主持人来清理陈旧的评论。作为rails开发人员,我想补充一点,在很多情况下,npm包目前比ruby gems更好,而且有上升趋势。quora链接的一个想法是:Node还有一个关键特性,这甚至是一种不公平的优势。“一种语言统治一切”。一旦您熟悉node.js和js本身,您就能够:编写前端/客户端应用程序、服务器端代码、移动应用程序(如使用phonegap)、桌面应用程序(如使用node webkit)、查询数据库(mongoDBs查询语言为javascript),并享受Web服务和JSON的乐趣,因为当你从上到下使用JS时,这几乎是一个不需要动脑筋的问题。这是一个非常好的答案。它应该在所有线程中回响:)