【问题标题】:Whats the best technology stack for supporting mobile apps and a website from the same back-end? [closed]从同一后端支持移动应用程序和网站的最佳技术堆栈是什么? [关闭]
【发布时间】:2011-06-05 19:29:57
【问题描述】:

我将拥有原生 iPhone 和 Android 应用程序,以及稍后的移动网站(适用于其他移动平台),所有这些都与管理用户、设置、视频、社交图等的后端对话。我还将拥有一个动态的包含大量视频、图片和社交图管理的网站。该网站基本上将是手机上应用程序的更具特色的版本。后端包括视频存储、转码、视频推荐引擎、与您的网络共享视频的选项。

我的想法是我应该构建一个公共应用程序服务层,它公开一个返回 JSON 的 RESTful api,并让应用程序和网站都与这个 api 对话。

我的问题是我应该将网站和服务层都保留在一种技术中,还是使用 Java 作为服务层,使用 Rails 或 Python 作为网站,以利用他们声称的更快的开发时间。该站点将有大量的 JavaScript 和 AJAX 来支持动态行为。如果我使用 Rails 或 Python,他们是否也应该将 REST/JSON 与服务层通信?在部署和扩展管理方面,似乎对所有后端部分都坚持使用 Java 之类的一种技术可能会更好。但另一方面,Rails 和 Python 承诺 Web 层的开发和维护时间会更快。如果我将 Rails 用于 Web 层,将它部署在 JRuby 中与服务层相同的 JVM 中以减少在 Web/应用程序服务器上管理的移动部件是否有意义?

该网站可能会增长到数以百万计的用户和视频。开发团队在 Java 方面经验丰富,会一些 Python,但很聪明,可以快速学习其他技术。

随意建议您选择的技术堆栈。

【问题讨论】:

  • 这是非常主观的,而且太宽泛了;你问的是很多公司都基于他们的整个业务并且已经发展了十多年的东西;移动并没有出现在 iPhone 上,只是因为它而变得更加复杂。
  • 我了解 Archie 的出处。尽管其他公司已经对此进行了改进,但尝试从一开始就正确实施它是有帮助的。架构错误需要花费大量资金来修复。 2 年后,我在这里寻找同一个问题的答案。

标签: java ruby-on-rails json rest mobile


【解决方案1】:

以下是根据我的经验提出的一些建议:

  • 为您的 JSON api 创建一个单独的 API 层。在那里使用 Spring MVC 或 JAX-RS
  • 对于 Web 前端,您可以使用 grails - 它结合了 ruby​​ 和 python 等动态语言的优势以及 JVM 和 java 堆栈的强大功能。
  • 您可以选择仅使用您站点中的 API,或者仅通过 API 公开部分功能并在内部使用其余功能。
  • 对于内部通信,尽量不要增加开销 - 您可以从简单的服务类开始(例如 spring bean)。将它们公开为 Web 服务是有害的,imo。是的,您的模块似乎是解耦的,但它妨碍了灵活性。由于服务是无状态的,因此可以从任何地方调用它们,因此您可以轻松地使它们生效并在与 grails 应用程序相同的 JVM 中被调用。

【讨论】:

  • 博卓,感谢您的帮助。根据您的回答,我有一些后续问题:
  • 您说使用 Spring MVC“或”JAX-RS。它必须是一个还是另一个?它们是等效的技术吗?我考虑过使用 Jersey 来使用 JAX-RS 从 Java 公开 REST api。 Spring MVC 是否也允许公开 REST JSON API?对于该站点,您建议我只从 Grails 调用 Spring Beans 吗?为什么您认为将它们公开为 Web 服务会妨碍灵活性?如果移动和网站都需要使用服务,我会拥有一个服务 bean 和一个 REST 包装器吗?你觉得 jRuby 怎么样?
  • 是的,spring mvc 允许公开 REST JSON API。您可以将 spring 与 jersey 和 spring 与 spring mvc 一起使用(spring mvc 是一个单独的框架)
猜你喜欢
  • 2010-09-10
  • 2011-08-07
  • 2021-02-19
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-10-13
  • 1970-01-01
  • 2015-10-12
相关资源
最近更新 更多