Sinatra的成功故事

时间:2009-02-13 09:03:05

标签: ruby sinatra web-frameworks

您是否成功使用过Sinatra?它是一个什么样的项目?在什么情况下你会建议使用Sinatra而不是Rails或Merb?

8 个答案:

答案 0 :(得分:19)

我已经涉足过Sinatra,但还没有真正写过任何严肃的内容。 如上所述,http://www.sinatrarb.com/wild.html有一个列表,虽然其中列出的很多应用程序似乎都链接到GitHub页面,我认为这些页面通常是人们在试验Sinatra并在线发布结果。然后,还有Sinatra mailing list,您可以在其中找到一些有趣项目的链接。[*]

关于何时使用Sinatra的问题,我个人会回答“对于较小的项目”。当你想要快速启动并运行时,似乎Sinatra是一个很好的选择。这对喜欢Ruby的人来说也很棒。我的意思是,当你在Rails中做某事时,你必须这样做“The Rails Way”。 Rails是构建应用程序的框架,您必须遵守其习俗和惯例。另一方面,Sinatra感觉就像一个图书馆。你觉得自己正在编写Ruby,如果你想连接数据库,你可以使用你喜欢/认为适合工作的库,如果你想输出HTML你选择你喜欢的模板库,如果你想要一个简单的Web框架,您选择Sinatra。 Sinatra不是构建整个应用程序的东西,它是你在旁边使用其他应用程序的东西。

所以,正如你可能已经聚集的那样,我非常喜欢Sinatra,我会将它用于个人(或小规模)项目。只要您知道自己在做什么,它就很容易设置并且易于使用。通过http://www.sinatrarb.com/wild.html查看,似乎大多数人都在使用它,例如参见Is Lost on yet?Calendar About Nothing

[*] 修改:我找到了一个帖子here,人们链接到他们的项目。似乎有更大和更小的项目。非常有趣的东西。

答案 1 :(得分:2)

http://www.sinatrarb.com/wild.html有一个列表。

不过,我还想听听他们的消息。我还怀疑在该名单之外有很多成功的Sinatra项目。

答案 2 :(得分:2)

我刚刚发布了用Sinatra写的TweepDiff(http://tweepdiff.com)。其他任何东西都是矫枉过正,但我​​也会将Sinatra用于更大的项目。

答案 3 :(得分:2)

我认为sinatra最适合微应用程序开发(没什么大惊喜,它是一个微框架)

Sinatra为您提供了足够的抽象级别,可以快速构建您想要的所有内容。我喜欢sinatra的是,框架可以让你严格控制你的应用程序实际上在做什么,你可以真正“感受”你正在写的东西。所以,我想说Sinatra是一个微妙平衡的框架。

我也认为Sinatra对于喜欢写Ruby的人有吸引力,如前所述。在实现sinatra接口之前,您开始编写ruby类。 (这种工作流程的好例子在这里:http://dev-logger.blogspot.com/2009/01/ric-rac-roe-in-soup-of-technologies.html

答案 4 :(得分:1)

我希望能够从我的Web服务器运行简洁的自包含Ruby脚本。就功能而言,它将类似于CGI库。 Sinatra很完美。之后有一个sinatra应用程序,我有一系列通过简单的sinatra风格路径访问的脚本。

每当我需要编写一个不依赖于数据库的Web应用程序时,我怀疑sinatra将是我的第一个停靠点。

答案 5 :(得分:0)

我必须回应上述大部分评论。我们正在实施Sinatra / HAML堆栈以进行浏览和基本数据报告。

我非常喜欢简单和直接连接到Ruby的组合。如果某些东西在浏览器中不起作用,那么很容易将它移植到一个直接的Ruby程序进行调试。

肯定有一种感觉就是用Sinatra和带有Rails的Taj Mahal建造一座狗屋。它很容易理解(它也帮助我理解了对MVC和Rails的需求)。

总之非常酷的东西而且非常快。我还没有强调它,所以我不能说它在现实世界中的表现如何。

答案 6 :(得分:0)

我使用sinatra制作http://istay.com,我只能说它对于任何不直接使用或没有数据库的网站来说都是一个很棒的小框架。

虽然我觉得sinatra已达到当前网站的限制,并且任何扩展都将使用Rails或其他框架编写。

答案 7 :(得分:0)

我将Sinatra用于小型“一种功能”类型的应用程序(My current blogging engine可能是一个很好的例子)。我认为Sinatra的简单性最适用于小实用程序和基本API前端(Twitter应用程序等)。

对于规模较大的应用程序,甚至还有基于Sinatra的Padrino Framework,其中包含一些您通常会为Rails提供的细节。