Rails与Ruby CGI

我有一个老板,他确信学习Rails是一个学习曲线太陡峭而且从劳动力的角度看,当直接在Apache上运行作为CGI应用程序的Ruby时,它并不符合成本效益。 为了我们的改写,他建议我们使用直接的Ruby没有框架而不是Rails(或Merb,Sinatra等)。我内心相信这是一个坏主意,但我无法将我的案例纳入话。 到目前为止我提出的一些想法:

  • Rails通过MVC促进更好的代码重用和更好的关注点分离
  • 一个运行rails的商店对于合格的求职者来说看起来更有吸引力,因为Rails在他/她的简历上看起来更好,工作更有趣等等。
  • (我可能错了)Rails在Passenger上会有更好的性能,因为Passenger自动将连接池连接到数据库,因为手动CGI应用程序必须自行管理或不管理,导致性能下降。
  • Rails是一种经过validation的技术,至少肯定不仅仅是一个手动的CGI框架

有什么理由我错过了或错了吗? 是否有我不知道的有效权衡?

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

做它暴力实际上复杂,而不是更少。 如果你的老板真的担心学习曲线,他应该使用标准框架,其中包含文档和文章以及截屏video和整个 托管 公司 。

此外,Rails很容易开发。 我已经教过Rails的为期一天的研讨会,甚至那些从未编程过的人在一天结束时都有一个可以工作的部署应用程序。 经验丰富的开发人员可以更轻松地完成任务。

如果你的老板不理解Rails,而不是弄清楚,他会给你这个关于Ruby over CGI的这一行…小心。 15年前科技让他落后,他不再有资格做出技术决定。

他应该毫不拖延地进入市场营销。

你的老板有没有理由对他的定罪? 除了“感觉”? 他真正担心的是什么 – 在你弄清楚他的潜在问题之前,你不会在改变主意方面取得多大成功。 如果他们的结果与他目前所说的大不相同,请不要感到惊讶。 例如,他可能对丹麦人有一种非理性的恐惧。

你有什么不同意见的具体原因吗?

作为老板,我不会因为你列出的原因而受到影响:良好的设计/编码实践不需要框架,招聘不是你关注的,性能优化? 不要这样做 ? 如何比CGI更有效? (他可能会说,不是我:我每天都喝Rails Kool-aid)。

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

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

其他人已经提到“管理” – 我建议谷歌搜索有关如何处理这个问题的资源。

是否有其他团队成员参与? 他们感觉怎么样?

Martin Fowler着名的(至少在敏捷世界中) 说过 “如果你的组织没有做你认为应该做的事,你应该改变你的组织”。 至少有两种方法可以阅读……

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

我想说的另一点是,MVC不仅仅是rails,如果你自己滚动,那么你可以很容易地遵循这种设计模式……除了滚动自己可以带来好处……一方面,你’我会确切地知道一切都做了什么以及它是如何工作的,自动滚动意味着一个更精简的系统,你可以更容易地修改……

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

– 大声思考 – 不要试图躲开Ruby on Rails ……但Rails是火车继续进行的……火车快速行驶……但它们只能走到轨道带你去的地方。 我更赞成“Ruby off Road”环境。 速度越慢,控制越多。

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

尽管如此,我认为这不是一个技术问题而是更多的“管理”问题,因为不使用Rails的决定在这一点上是如此可笑,以至于是荒谬的。

我想你有两个选择:

  1. 排除一种方式,使得看起来好像一直使用Rails是你的老板想法。 您可能会说:“老板,我已经听说过您所说的内容,因此我不会使用完整的Rails,而是将其用作基本框架,并在Ruby中完成大部分工作。”

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

祝好运。

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

此外,一个很大的优势是RoR现在是一个非常受欢迎的系统。 安装插件很简单,已经找到了许多部署选项 – 基本上很多不直接“编程”的工作可能会更容易。

而积极的记录 – 它是如此有用,以至于很难想象在没有它的情况下做一个网络/数据库应用程序。