我正在开发Mobile/VOIP域中的一个应用程序。这对我来说真的是一个灰色地带。以下是有关该应用程序的一些详细信息:
约束条件:
我们有构建在Perl中的核心系统(它是一个遗留系统,服务于许多其他与VOIP/Mobile相关的服务),以及一个跟踪损益的会计系统,但它已经变得非常复杂。因此,我们决定单独制作这个应用程序,并且只使用SMS/USSD和IVR。但是,出于记帐目的,此应用程序的每个用户都必须是核心系统的注册用户;我们只需通过一个API调用即可轻松实现这一点。
现在,为了发送IVR和USSD的回复/响应,我们需要在提供这些功能的供应商处部署应用程序。但我们不想总是需要登录到他们的服务器上进行日常报告和会计工作,因为对于我们的每个客户,我们将有不同的USSD/SMS/IVR系统的流程。
因此,我们决定将这个新的应用程序划分为两个子应用程序。
应用程序的基本流程:
现在,将有许多这样的客户端应用程序与单个中间件应用程序交互。我们决定用Ruby构建这些应用程序。我会遵循RESTful架构,因为涉及到大量的API调用。
在Rails、Padrino或Sinatra这三个框架中,有没有哪一个特别适合这个项目?如果可能的话,我会很感激详细的相关利弊的比较。
发布于 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。祝你好运,希望这对你有帮助。
https://stackoverflow.com/questions/8090644
复制相似问题