我正在编写一个简单的ruby控制器,只需要作为Web服务响应一堆移动客户端。
有人告诉我,我应该看看Sinatra。将Sinatra用于这么简单的事情有什么意义?他提到它会“更快”但是如何在某些东西之上使包装更快?
我不想让事情过于复杂;一个简单的控制器很容易编写,维护的宝石也少。我错过了Sinatra提供的一些值得额外麻烦的东西吗?
由于
答案 0 :(得分:5)
您可以构建的最简单有用的Ruby Web应用程序是Rack应用程序。 Sinatra是一个轻量级DSL,位于Rack的顶部,可以使控制器和视图编码更加方便。您可以通过添加ActiveRecord
或Rack::Oauth
等其他附加组件来构建更复杂的应用程序
Rails 2是一个功能更丰富的框架,其中包含了框架中已有的大量其他功能。有些应用程序不需要所有这些,所以一些开发人员更喜欢像Sinatra这样的东西,这是最小的。
然而,自Rails 3以来,Rails和Sinatra之间的区别已经模糊了很多。新版本允许从堆栈到堆栈中的完整Rails,你可以根据自己的需要定制它。一些中间框架(例如Sinatra)的存在理由比过去要弱。
所以,看看Rails 3,从最低限度开始,并根据您的需求进行扩展。
答案 1 :(得分:2)
Sinatra是一个非常苗条的Web框架。它在运行时需要比Rails更少的内存。此外,请求处理可能更快,因为涉及的代码更少。因此,对于“这么简单”的网络服务来说非常合适。
特别是如果您需要运行多个实例(例如,高流量或许多长时间运行的请求),这可能是运行Web服务所需的计算机数量的重要因素。