【问题标题】:Should I re-write the webapp front end in Erlang?我应该用 Erlang 重写 webapp 前端吗?
【发布时间】:2010-11-03 14:44:42
【问题描述】:

我有一个 Rails webapp [部署在 Heroku 上],它使用 Heroku 的 rake:cron 功能重复对其他站点进行一系列 HTTP 调用。目前的情况并不理想; rake:cron 进程在单个线程中执行,这意味着 HTTP 调用是按顺序进行的;这反过来意味着对同一站点的调用之间有很长的时间[通常为 2 分钟]。

我想并行执行这个过程,并将调用之间的时间减少到 10 秒。看过 Kevin Smith 的“实践中的 Erlang”后,我对使用 Erlang 作为后端替代品的想法很满意。我想弄清楚[给定Damien Katz's comments],我是否应该a)用Erlang、前端和全部重写整个webapp,或者b)使用Rails前端/ Erlang后端维护一个拆分结构。

我喜欢在项目中使用 100% Erlang 堆栈的想法;我需要使用某种 Erlang Web 框架 [Nitrogen ? Erlyweb ?];我担心他们不够成熟,我会花时间和他们一起在项目的 Web 部分上陷入困境。

有人有意见吗?谢谢。

【问题讨论】:

标签: erlang


【解决方案1】:

我致力于为工作使用正确的工具。除非你有绝对的理由来移植前面,否则将两者连接在一起绝对没有错。

【讨论】:

    【解决方案2】:

    前两张海报几乎涵盖了您问题的哲学方面。因此,我将回答您问题的框架成熟度/陷入困境。

    如果您出于某种原因决定确实要在 erlang 中重写 webapp,那么我不会太担心框架会拖慢您的速度。 erlyweb 和氮气的功能已经足够完善,您可以快速使用它们。我在氮气中开发了一个相当复杂的敏捷项目管理应用程序,发现它非常直观,并且并不缺乏我需要的功能。晚上几个小时,几周后,我的应用程序开始运行。

    至于使用哪个取决于您要构建的应用类型。

    Nitrogen 的目标是极其动态的 Web 应用程序。大部分页面都是使用 javascript 呈现的,并且是高度事件驱动的。

    ErlyWeb 更适合以内容为主要焦点的站点,而不是富客户端类型的应用程序。它使用 MVC 风格的架构。

    祝你一切顺利。

    【讨论】:

      【解决方案3】:

      这取决于。你对 Erlang 了解多少?你已经写了多少代码? 你有多少项目经验?这是工作还是娱乐?

      从头开始重写项目通常会导致灾难,尤其是在您尝试 在此过程中学习一门新语言。在我看来,如果您已经精通这两种语言,您就不会问这个问题,在这种情况下,如果这是一个工作项目,我建议您坚持使用 Ruby。

      我不同意上面的海报,即更改语言是过早的优化,如果有必要。 改变语言是一件大事。不能在最后一刻完成。 但是,由于您概述的原因,我可能根本不会更改语言。 如果您除了切换性能之外没有任何其他原因,您可能应该只是 看看 Ruby 中的多线程或其他一些优化。

      【讨论】:

      • 我没有说改变语言总是过早的优化。哈哈。所以你说的和我说的一样,就是在这种情况下听起来像prem。优化。 :D
      【解决方案4】:

      对访问者的实际影响是什么(HTTP 后端调用之间的两分钟间隔)?

      如果没有太大区别,我会说这听起来像是过早的优化,你现在最好跳过 Erlang。

      【讨论】:

      • 该应用程序是一个股票交易应用程序。每隔两分钟它就可以工作,但它比真正的实用性更“有趣”。真正的效用 == 10 秒内的间隔。所以也许我应该改写这个问题:我需要在 Erlang 中重写后端以使其工作;我应该在 Erlang 中重做前面还是保留在 Rails 中?
      • 嗯,明白了。我会把前端留在 Rails 中。除了 Rails 本身的所有优点之外,您还可以访问许多有用的 gem/插件。 Erlang 很棒,但我认为它还无法与 Rails 获得的所有易于开发的优势相媲美。
      猜你喜欢
      • 2013-08-03
      • 1970-01-01
      • 2010-09-07
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      相关资源
      最近更新 更多