代码之家  ›  专栏  ›  技术社区  ›  LoveMeSomeCode

西纳特拉与铁轨

  •  64
  • LoveMeSomeCode  · 技术社区  · 14 年前

    使用Sinatra/Rails有什么特别的好处?仅仅是ActionPack/ActionView吗?如果我错了,请纠正我,但我可以使用Webrick/Mongrel并提供我的.erb文件,对吗?我可以在这些文件中使用ActiveRecord技术,还可以访问post变量、会话状态和querystring变量,对吧?

    2 回复  |  直到 14 年前
        1
  •  62
  •   Sergio Tulentsev    12 年前

    对西纳特拉来说,这简直就像是一个包装架。所以你首先要问一下架子的作用是什么。Rack基本上是一个框架如何返回结果的规范,它可以使用Rack支持的任何web服务器返回的结果。因此,它实际上是一个兼容层,允许您随意选择框架/服务器组合,而不必担心它们是否能协同工作。如果您的框架与机架兼容,那么您应该能够通过机架部署到几乎任何服务器上。

    现在,问题是机架的高度很低。像Sinatra这样的框架为您提供了一些东西,比如好的路由、帮助程序、前/后过滤器等等。你只要看看医生就能知道你能得到什么。Rails更具特色,在很多方面都是“神奇的”。也就是说,你可能会在Rails中写一行代码,结果做了很多事情,这对一些人来说是件好事,对一些人来说太神奇了。出于这个原因,我个人更喜欢Sinatra,至少在对Rails内部有了一个很好的了解之前。

        2
  •  5
  •   shingara    14 年前

    Rails带来的好处是ActionView/ActionPack。但你可以用混血儿/Erb代替。有点不同。

    这是你视图中的所有herlper,比如表单中的name_route或error management。这是所有资源管理和所有插件一样的继承资源。钢轨的优点。

    有一些类似Padrino环境的工具可以帮助您拥有所有这些助手。但是在所有的插件激活之后它真的更快了?我不这么认为。

    对于Rails 3,Rails是一个完整的机架应用程序,有很多机架中间件。你只需要放下一些中间件来增加你的响应。

        3
  •  0
  •   KSD Putra    5 年前

    直到今天,这个问题仍然是相关的。随着rails的功能不断增加,我想添加一个新的答案。

    现在有这么多的宝石,所以你可以在Rails中实现什么,很可能你也可以在Sinatra中实现它。如果我们想比较Rails和Sinatra(或任何其他框架),我们只需要比较性能和易用性。

    什么之中的一个 Rails doctrine 是约定优于配置。当您在Rails中创建一个项目时,会自动地在您的 Gemfile . 不仅仅是宝石,当你看着 config 目录,你会看到很多东西包括在内。这条教义是为什么魔法可以在第一时间发生的原因。一旦打破惯例,就必须修改甚至创建配置。

    如果你看到这个 web frameworks benchmark

    那么,什么时候最好使用Rails呢?

    • 你的应用程序的未来功能仍然未知。

    什么时候用西纳屈最好?

    • 如果你只在小型项目中工作,西纳特拉会很快;
    • 你知道你以后不会增加很多功能。

    你从Rails得到了什么?发展速度。