什么是使用Sinatra或Merb的场景?

时间:2009-04-09 02:23:11

标签: ruby sinatra merb

我正在学习Rails并且对Sinatra& amp; Merb的。我想知道你会使用Merb / Sinatra的情况。

感谢您的反馈!

3 个答案:

答案 0 :(得分:7)

Sinatra是一个比Rails更小,重量更轻的框架。如果您希望快速运行某些内容,只需发送几个URL并返回一些简单内容,就可以使用它。看看Sinatra home page;这就是获得“Hello,World”并运行所需的全部内容,而在Rails中,您需要生成整个项目结构,设置控制器和视图,设置路由等等(我没有一段时间写了一个Rails应用程序,所以我不知道究竟有多少步“Hello,World”,但它肯定比Sinatra更多。 Sinatra的依赖性远远少于Rails,因此安装和运行起来更容易。

我们正在使用Sinatra作为我们现在正在撰写的一些Web客户端库的快速测试Web服务器。事实上,我们可以编写一个文件并将所有逻辑包含在该文件中,并且具有非常少的依赖性,这意味着使用和运行测试比使用Rails应用程序要容易得多。

Merb is being merged into Rails,所以很快就不应该有任何理由使用一个而不是另一个。它原本设计为重量轻一点,比Rails更加分离; Rails有更多内置的假设,你可以使用ActiveRecord。但是当他们合并这两者时,他们正在以类似的方式解耦Rails,所以如果你已经在学习Rails,那么只要坚持下去并跟随他们的发展,就可能是值得的。

答案 1 :(得分:2)

对于Merb来说,我说的不多,但Sinatra对小型或轻量级解决方案非常有效。如果您不使用大量代码,或者不需要庞大的网站,您可以使用Sinatra编写一个非常有效的网站,速度可以快,也可以是Rails的两倍(我个人认为)。 / p>

Sinatra也非常适合应用程序的碎片,例如统计包的前端。或类似ErrCount之类的东西,这只是一个非常简单的点击计数器。

在使用Sinatra时,请考虑轻量级,快速且高度简单的Web应用程序(尽管复杂性是您的选择)。

答案 2 :(得分:1)

事情的进展,很快就会成为一个没有实际意义的问题。

如上所述,Merb 2.0和Rails 3.0将是同一回事。新组合的Merb和Rails核心团队已经在努力实现这一目标。我不知道他们是否仍在计划5月份RailsConf的发布(可能是测试版),但这肯定会在今年发生。

例如,如果你没有使用ActiveRecord以外的ORM,那么你现在可以从Merb开始并在2.0(Rails 3.0)发布时更新。现在,Merb被普遍接受为Rails提供更好的框架来改变一个组件。

Sinatra看起来是一个出色的解决方案,对于一个网络应用程序来说,它具有较低的界面复杂性和较低的模型级代码,而不是Merb / Rails的正常情况。实现简单的RESTful API将是一个很好的用途。当涉及任何数量的HTML时,我不太相信它的价值,更不用说在涉及模板的时候。

再次,随着Rails(以及很快Merb)现在坐在Rack的顶部,没有理由不将婴儿Sinatra应用程序纳入解决方案:他们可以共同生活。有a blog post that discusses that very concept