【问题标题】:Rails vs Ruby CGI [closed]Rails vs Ruby CGI [关闭]
【发布时间】:2010-11-21 03:29:47
【问题描述】:

我有一位老板坚信学习 Rails 的学习曲线太陡峭,而且当可以在 Apache 上作为 CGI 应用程序运行直接 Ruby 时,从劳动力的角度来看并不划算。他提议,为了我们的重写,我们使用没有框架而不是 Rails(或 Merb、Sinatra 等)的直接 Ruby。字。到目前为止我提出的一些想法:

  • Rails 通过 MVC 促进更好的代码重用和更好的关注点分离
  • 运行 Rails 的商店对合格的求职者来说看起来更有吸引力,因为 Rails 在他/她的简历上看起来更好,工作更有趣等等。
  • (我可能在这一点上错了)Rails 在Passenger 上的性能会更好,因为Passenger 会自动将与数据库的连接池化,而手动CGI 应用程序必须自行管理,否则会导致性能更差。李>
  • Rails 是一项经过验证的技术,至少可以肯定比手动 CGI 框架更重要

我有什么遗漏或错误的原因吗?是否存在我不知道的有效权衡?

【问题讨论】:

    标签: ruby-on-rails ruby cgi


    【解决方案1】:

    公司偶尔有充分的理由推出自己的框架,而不是使用标准的 Rack 兼容框架。但“Rails 的学习曲线太陡峭”不是其中之一。

    暴力破解实际上是更多复杂,而不是更少。如果你的老板真的很担心学习曲线,他应该使用有documentationarticlesscreencastsentirehostingcompanies专用的标准框架。

    此外,Rails 非常容易开发。我曾在 Rails 上教授过为期一天的研讨会,即使是以前从未编程过的人也能在一天结束时拥有一个工作的、已部署的应用程序。经验丰富的开发人员会更轻松。

    如果您的老板不了解 Rails,而不是弄明白,他会告诉您有关 Ruby over CGI 的这句话……小心。 15 年前,技术把他抛在了身后,他不再有资格做出技术决策。

    他应该立即进入市场营销。

    【讨论】:

      【解决方案2】:

      你的老板有什么理由让他被定罪吗?除了“感觉”吗?他真正关心的是什么——在你弄清楚他潜在的担忧是什么之前,你不会成功地改变他的想法。如果结果与他目前所说的完全不同,请不要感到惊讶。例如,他可能对Danes 有一种非理性的恐惧。

      你有什么不同意的具体理由吗?

      作为老板,我不会被您迄今为止列出的原因所左右:良好的设计/编码实践不需要框架,招聘不是您关心的问题,性能优化? Don't do it?比 CGI 更能证明什么? (他可能会说,不是我:我每天都喝 Rails Kool-aid)。

      他是目前意义上的技术人员吗?我的意思是,他会参与编写重写代码吗?如果是这样,他可能会接受挑战吗?选择一个可在一两天内构建的功能子集,并尝试两种方式。如果他不是技术人员,为什么他认为你的意见不如他的有效?

      如果他从成本/工作量的角度来考虑,为什么他认为编写更少的代码(并免费获得数千行有用的、经过测试的框架代码)会比其他方式更昂贵和/或更费力?

      其他人已经提到“向上管理” - 我建议在谷歌上搜索有关如何解决此问题的资源。

      团队中是否有其他成员参与其中?他们感觉如何?

      Martin Fowler 著名(至少在敏捷世界中)said 类似“如果您的组织没有按照您认为的那样做,您应该改变您的组织”。至少有两种阅读方式...

      【讨论】:

        【解决方案3】:

        我认为一个潜在的好主意是使用 RoR(Cough ActiveRecord) 的一部分,如果它可以简化事情的话,可以推出你自己的东西......我不是一个框架人,我更喜欢库和一定程度的代码抽象,这就是为什么我永远不会被误认为是 RoR 的粉丝……但我认为让他使用 rails 的某些部分,可能会变成使用所有 rails。

        我想说的唯一一点是,MVC 不仅仅是 Rails,如果您自己滚动,那么您可以很容易地遵循该设计模式...除了滚动自己可以有好处...一方面,您将确切地知道一切的作用以及它是如何工作的,自卷意味着更精简的系统,您可以更轻松地进行修改...

        我的最终答案是在中间相遇……Ruby 在创意程序员的手中非常强大……事实上,我正在重新启动我 2 个月的快速“拼凑”将 php/jquery 原型转换为 erb/jquery 站点...

        --大声思考-- 不想在 Ruby on Rails 上胡扯……但 Rails 是火车运行的东西……而且火车确实开得很快……但它们只会去铁轨带你去的地方。我更赞成“Ruby off Road”环境。更慢的速度,更多的控制。

        【讨论】:

          【解决方案4】:

          使用 Ruby on Rails 与仅使用 Ruby 是购买汽车和使用单个轮胎焊接独轮车的区别:两者都能让您到达目的地。

          不过,从本质上讲,我认为这与其说是一个技术问题,不如说是一个“管理”问题,因为在这一点上不使用 Rails 的决定是如此糟糕,以至于荒谬可笑。

          我认为你有两个选择:

          1. 找出一种方法,让使用 Rails 看起来好像一直是您老板的想法。你可能会这样说:“老大,我已经听到了你所说的,所以我不会使用成熟的 Rails,而是将它用作一个基本框架,并在直接的 Ruby 中完成大部分工作。”

          2. 在一个周末主动做一个开发原型,给你的老板一些可证明的东西,说:“这显然是要走的路”。

          祝你好运。

          【讨论】:

            【解决方案5】:

            这不是一个非常陡峭的学习曲线。在做出决定之前,您可能想请他浏览教程。

            另外,一个很大的优势是 RoR 现在是一个非常流行的系统。安装插件很简单,有很多部署选项已经想出来了——基本上很多不是直接“编程”的工作可能会更容易。

            还有活动记录——它非常有用,很难想象没有它来开发网络/数据库应用程序。

            【讨论】:

              猜你喜欢
              • 2021-08-16
              • 2012-02-01
              • 2012-12-28
              • 2011-04-26
              • 1970-01-01
              • 2011-04-05
              • 2013-03-13
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多