English 中文(简体)
在哪些情况下会使用Sinatra或Merb?
原标题:
  • 时间:2009-04-09 02:23:11
  •  标签:

我正在学习Rails,对Sinatra&;默布。我想知道在哪些情况下你会使用Merb/Sinatra。

感谢您的反馈!

最佳回答

Sinatra是一个比Rails小得多、重量轻得多的框架。如果你想让一些东西快速运行,只需要从几个URL中调度并返回一些简单的内容,就可以使用它。看看Sinatra主页;这就是您获得“你好,World”启动并运行,而在Rails中,您需要生成一个完整的项目结构,设置一个控制器和一个视图,设置路由等等(我已经有一段时间没有写Rails应用程序了,所以我不知道“Hello,World”到底有多少步,但它肯定比Sinatra多)。Sinatra的依赖性也比Rails少得多,所以安装和运行起来更容易。

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

合并报表正在被合并到Rails中,所以很快就没有任何理由使用其中一个。它最初的设计是比Rails更轻、更解耦;Rails有更多的内置假设,即你将使用ActiveRecord。但当他们将两者合并时,他们以类似的方式解耦Rails,所以如果你已经在学习Rails,那么它可能值得坚持下去,并随着事态的发展而发展。

问题回答

我不能为Merb说太多,但Sinatra对于小型或轻量级解决方案非常有效。如果你不需要大量的代码,或者不需要一个庞大的网站,你可以用Sinatra来编写一个非常有效的网站,速度是Rails的两倍(在我看来)。

Sinatra也非常适合应用程序的零碎部分,例如统计数据包的前端。或者类似于ErrCount,这只是一个非常简单的命中计数器。

因此,在使用Sinatra时,请考虑轻便、快速和高度简单化的web应用程序(尽管复杂性是您的选择)。

就目前的情况来看,这很快就会成为一个悬而未决的问题。

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

例如,如果您已经下定决心使用除ActiveRecord之外的ORM,那么现在可以从Merb开始,并在2.0(Rails3.0)发布时进行更新。目前,人们普遍认为Merb为各种组件提供了比Rails更好的框架。

Sinatra看起来是一个出色的web应用解决方案,它具有较低的接口复杂性和比Merb/Rails正常情况下更低的模型级代码。实现简单的RESTful API将是一个很好的用途。当涉及到任何数量的HTML时,我都不太相信它的价值,当涉及到模板时更不相信。

同样,由于Rails(以及Merb很快)现在位于Rack之上,没有理由不将Sinatra的婴儿应用程序纳入解决方案:它们可以一起生活。有一篇讨论这个概念的博客文章





相关问题
热门标签