首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails、Padrino和Sinatra对于构建预付费移动服务的适用性

Rails、Padrino和Sinatra对于构建预付费移动服务的适用性
EN

Stack Overflow用户
提问于 2011-11-11 14:56:51
回答 1查看 9.1K关注 0票数 18

我正在开发Mobile/VOIP域中的一个应用程序。这对我来说真的是一个灰色地带。以下是有关该应用程序的一些详细信息:

  • 这基本上类似于自动充值/预付费移动服务,与我之前编写的ERP应用程序相比,
  • 将具有中等复杂的逻辑。
  • 响应中的视图部分将是纯文本,将作为短信/USSD提取到用户和语音XML (VXML)发送给用户。
  • 路由逻辑非常简单,因为每种回复类型只有两到三个URL重要。

约束条件:

我们有构建在Perl中的核心系统(它是一个遗留系统,服务于许多其他与VOIP/Mobile相关的服务),以及一个跟踪损益的会计系统,但它已经变得非常复杂。因此,我们决定单独制作这个应用程序,并且只使用SMS/USSD和IVR。但是,出于记帐目的,此应用程序的每个用户都必须是核心系统的注册用户;我们只需通过一个API调用即可轻松实现这一点。

现在,为了发送IVR和USSD的回复/响应,我们需要在提供这些功能的供应商处部署应用程序。但我们不想总是需要登录到他们的服务器上进行日常报告和会计工作,因为对于我们的每个客户,我们将有不同的USSD/SMS/IVR系统的流程。

因此,我们决定将这个新的应用程序划分为两个子应用程序。

  • One应用程序将处理USSD/SMS/IVR域的用户界面,并将部署在供应商的服务器上,我们将称之为"clientware".
  • The第二个应用程序将处理所有核心业务逻辑和报告系统,并将部署在我们的服务器上,我们将在这些服务器上完全访问。我们将其命名为"middleware".

应用程序的基本流程:

  1. 用户拨打短码。API调用登陆我们的供应商服务器,客户端应用程序将处理请求,并在其本地database.
  2. Clientware中注册为用户,也将对中间件进行
  3. 调用。在那里注册该用户,以便核心业务逻辑及时自动充值等。
  4. 然后,中间件还将对核心系统进行API调用,以便在那里注册该用户,以便进行记帐。

现在,将有许多这样的客户端应用程序与单个中间件应用程序交互。我们决定用Ruby构建这些应用程序。我会遵循RESTful架构,因为涉及到大量的API调用。

RailsPadrinoSinatra这三个框架中,有没有哪一个特别适合这个项目?如果可能的话,我会很感激详细的相关利弊的比较。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-11 19:05:42

我是Padrino的创建者之一,但我也广泛地使用过Rails和Sinatra。可能不是你想听到的,但无论你选择什么,你都能相当容易地完成这个项目。我不能说在大计划中选择一个会对你有多大的影响。

我显然是Rack和Sinatra模块化和轻量级本质的支持者。在Rack、Rack Middleware、Sinatra和extensions之间,如果你愿意理解这些工具,你可以像在Rails中一样轻松地完成任何事情。

我认为Sinatra和Padrino对Ruby新手的学习曲线较低。这是因为Rails提倡“随心所欲”和“渐进式的复杂性”,这比“一次就能做到”的Rails方法要好得多,但另一方面,Rails有更多的文档、博客、支持等,所以权衡是显而易见的。Sinatra和Padrino在内存占用、每秒请求数、cpu使用率等方面也“更快”和“更轻”,但Rails在大多数情况下都足够快,而且应用服务器很少成为瓶颈。

话虽如此,我会试着给你一个更直接的意见。如果你只是在做一个服务API (听起来像这里),我建议你使用Sinatra,Padrino,甚至我们的Renee over Rails的另一个项目。从大多数方面来看,Rails对于轻量级服务API来说都是矫饰过头了。

进一步缩小范围,Padrino 是Sinatra,所以你不必在他们之间做出选择。您可以从Sinatra开始并包含来自Padrino的standalone modules,或者使用全栈Padrino应用程序,该应用程序仍然是Sinatra的底层应用程序,访问许多强大功能(i18n、记录器、管理面板、缓存、生成器、表单帮助器、邮件程序等)的性能损失非常小。请记住,这些都是“只有在需要时才使用它们”的模块化扩展。

我建议查看我们的Padrino Getting Started指南,从那里开始探索Sinatra和Padrino。我们的Padrino指南和文档力求彻底。也就是说,“安全”的赌注是Rails,因为它有更多的用途,更成熟,更多的贡献者和更多的文档/ googleability。祝你好运,希望这对你有帮助。

票数 83
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8090644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档