【问题标题】:web development with ruby without rails?使用没有rails的ruby进行Web开发?
【发布时间】:2009-05-29 21:48:03
【问题描述】:

由于我无法控制的原因,我的任务是不使用 Rails 或任何其他重量级框架(例如 Merb)的 Ruby Web 开发。我想知道是否有其他人遇到过这个问题,并且可以推荐描述此类问题的最佳实践的最佳实践或资源。我想避免可怕的事情

 out.print('<td class="foo">'+some_data+'</td>')

Web 开发风格。一位同事建议将 Rack 作为轻量级框架,但文档很粗略,而且似乎未经市场验证。

【问题讨论】:

  • “重量级”是什么意思?
  • 实际上,Rails 现在(从 2.3 开始)依赖于 Rack。 Rack 的级别非常低,因此这可能就是您找不到所需文档的原因。但它是一款非常好的软件。

标签: ruby


【解决方案1】:

看看Sinatra。这是一个框架,但没有那么重。

【讨论】:

  • Sinatra 可以处理的负载和功能比某些人乍看之下想象的要多,足以让 Rails 物有所值。
  • 从技术上讲,如果你使用足够多的废话,一个完全空白的文件可以变成 Rails。
  • 这就是你使用 Sinatra 的原因,所以它不会变成那样。
【解决方案2】:

查看RackSinatraWaves。机架在市场上并非未经证实。如今,Rails 构建在机架之上!它也不是一个框架,它允许框架专注于它们的差异化而不是低级别的繁忙工作。

您也可以直接使用 jruby 和 java servlet api。顺便说一句,所有基于机架的框架都可以轻松地在 jruby 上运行。

【讨论】:

    【解决方案3】:

    Rack 与其说是一个应用程序框架,不如说是一个服务器接口。您可能希望在这个项目中使用它,但它不会解决您想要一个框架而不使用框架的问题。无论如何,如果你想“避免可怕的out.print('&lt;td class="foo"&gt;'+some_data+'&lt;/td&gt;')”,你至少必须使用模板系统。有很多可用的,例如 ERb(Rails 默认使用)和 Haml。

    【讨论】:

      【解决方案4】:

      与拉马兹一起去。我在生产中使用它,在 JRuby 和 Glassfish 上运行。

      易于开发、坚如磐石的社区支持。没有杂物。和 Ruby 一样,它不会妨碍您。

      【讨论】:

        【解决方案5】:

        我可以和所有推荐Sinatra的人一起加入。它很紧凑,编写代码很有趣,它部署在Rack 上,这意味着你真的可以让它在你最喜欢的任何堆栈中运行(Mongrel、FCGI、Thin、Passenger 等)

        当我需要快速启动一个项目时,我试用了 Sinatra,它的规模和性能非常好,以至于我今天仍在使用它来处理每天超过 80,000 个繁重的请求。

        【讨论】:

          【解决方案6】:

          一如既往地好'cgi.rb 可用。

          【讨论】:

          • 如果你使用 cgi.rb 考虑创建一组元素类来包装它。
          【解决方案7】:

          你看过Sinatra吗?它是一个框架,但没有 Rails 重。我自己没有测试过,但它似乎很容易使用。

          另外,Ramaze 看起来不错且模块化,但不确定它是否是您想要的。

          我不知道将 Ruby 直接用作 cgi 有多么容易,但也应该很可能将布局与代码分开。有很多 Gem 可以在不使用框架的情况下做到这一点。

          【讨论】:

            【解决方案8】:

            我个人的选择和建议是Ramaze——它尽可能简单,但并不简单。在不牺牲功率的情况下干净简洁。与您选择的 JS lib(jQuery、Prototype、Mootools)或 ORM(Sequel、Datamapper、M4DBI)或模板引擎配合得很好。另外,不要忘记像 nanoc 这样的静态生成器。

            【讨论】:

              【解决方案9】:

              很有可能,我的整个网站都是在纯 ruby​​ 上运行的。

              我没有遇到任何问题。我开始我的应用程序

              require "mysql"                               # module | mysql
              require "cgi"                                 # module | cgi
              require "date"
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-03-22
                • 2013-02-11
                • 1970-01-01
                相关资源
                最近更新 更多