您成功使用 Sinatra 了吗?这是一个什么样的项目?在什么情况下你会推荐使用 Sinatra 而不是 Rails 或 Merb?
8 回答
我涉足过 Sinatra,但还没有真正写过任何严肃的东西。正如你上面所说,在http://www.sinatrarb.com/wild.html上有一个列表,尽管其中列出的许多应用程序似乎都链接到 GitHub 页面,我认为这些页面通常是人们尝试使用 Sinatra 并发布他们的结果在线。然后,还有Sinatra 邮件列表,您可以在其中找到一些有趣项目的链接。[*]
至于您关于何时使用 Sinatra 的问题,我个人会回答“针对较小的项目”。当您想要快速启动并运行某些东西时,Sinatra 似乎是一个绝佳的选择。对于喜欢 Ruby 的人来说,它也很棒。我的意思是,当你在 Rails 中做某事时,你必须使用“Rails 方式”。Rails 是一个框架你正在构建你的应用程序,你必须遵守它的习惯和惯例。另一方面,Sinatra 感觉就像一个图书馆。你觉得你在写 Ruby,如果你想连接到数据库,你使用你喜欢/认为适合工作的库,如果你想输出 HTML,你选择你喜欢的模板库,如果你想要一个简单的 web 框架,你选择 Sinatra。Sinatra 不是您构建整个应用程序的基础,它是您在应用程序的其余部分旁边使用的东西。
所以,正如您可能已经收集到的,我非常喜欢 Sinatra,我会将它用于个人(或小规模)项目。只要您知道自己在做什么,它就易于设置且易于使用。浏览http://www.sinatrarb.com/wild.html,似乎大多数人都在使用它,例如Is Lost on yet? 和日历什么都没有。
[*]编辑:我在这里找到了一个线程,人们链接到他们的项目。似乎有更大和更小的项目。非常有趣的东西。
http://www.sinatrarb.com/wild.html上有一个列表。
不过,我还是想听听更多关于他们的信息。我还怀疑在这个列表之外还有很多成功的 Sinatra 项目。
我刚刚发布了用 Sinatra 编写的 TweepDiff ( http://tweepdiff.com )。其他任何事情都会是矫枉过正,但我也会将 Sinatra 用于更大的项目。
我认为 sinatra 最适合微应用程序开发(不足为奇,它是一个微框架)
Sinatra 为您提供了足够的抽象级别来快速构建几乎所有您想要的东西。我喜欢 sinatra 的一点是,该框架让您可以严格控制您的应用程序实际在做什么,您可以真正“感受”您正在编写的内容。所以,我会说 Sinatra 是一个微妙平衡的框架。
我还认为 Sinatra 对“喜欢编写 Ruby 的人”很有吸引力,如前所述。您在实现 sinatra 接口之前开始编写 ruby 类。(这种工作流程的好例子:http: //dev-logger.blogspot.com/2009/01/ric-rac-roe-in-soup-of-technologies.html)
我希望能够从我的 Web 服务器运行简洁的独立 Ruby 脚本。就功能而言,它类似于 CGI 库。西纳特拉是完美的。稍后有一个 sinatra 应用程序,我有一组通过简单的 sinatra 样式路由访问的脚本。
每当我需要编写一个不依赖于数据库的 Web 应用程序时,我怀疑 sinatra 将是我的第一个停靠点。
我不得不回应上述大部分评论。我们正在实施用于浏览和基本数据报告的 Sinatra/HAML 堆栈。
我真的很喜欢简单和直接连接到 Ruby 的组合。如果某些东西在浏览器中不起作用,很容易将其移植到直接的 Ruby 程序中进行调试。
绝对有一种用 Sinatra 建造狗屋与用 Rails 建造泰姬陵的感觉。它很容易理解(它也帮助我理解了对 MVC 和 Rails 的需求)。
总的来说非常酷的东西而且非常快。我还没有强调它,所以我不能说它在现实世界中的表现如何。
我使用 sinatra 制作了http://istay.com,我只能说,对于任何不直接使用或没有数据库的网站来说,它都是一个很棒的小框架。
虽然我确实觉得 sinatra 已经达到了当前站点的极限,并且任何扩展都将使用 Rails 或其他框架编写。
我将 Sinatra 用于小型“单一功能”类型的应用程序(我当前的博客引擎可能是一个很好的例子)。我认为 Sinatra 的简单性最适合小型实用程序和基本 API 前端(Twitter 应用程序等)。
对于更大规模的应用程序,甚至还有基于 Sinatra 的Padrino 框架,其中包含一些您通常需要 Rails 提供的细节。