<分区>
我将拥有 native iPhone 和 Android 应用程序,然后是一个移动网站(用于其他移动平台),所有这些都与管理用户、设置、视频、社交图谱等的后端对话。我还将拥有一个动态的具有大量视频、图片和社交图管理的网站。该网站基本上将是手机应用程序的一个更具特色的版本。后端包括视频存储、转码、视频推荐引擎、与您的网络共享视频的选项。
我的想法是,我应该构建一个公共(public)应用程序服务层,该层公开一个返回 JSON 的 RESTful api,并让应用程序和网站都与该 api 通信。
我的问题是,我应该将网站和服务层都保留在一种技术中,还是将 Java 用于服务层,将 Rails 或 Python 用于网站,以利用它们声称的更快的开发时间。该网站将有大量的 JavaScript 和 AJAX 来支持动态行为。如果我使用 Rails 或 Python,他们是否也应该将 REST/JSON 与服务层通信?在部署和扩展管理方面,似乎对所有后端部分坚持使用一种技术(如 Java)可能会更好;但另一方面,Rails 和 Python promise 更快的 Web 层开发和维护时间。如果我将 Rails 用于 Web 层,将它部署在与服务层相同的 JVM 中的 JRuby 中是否有意义,以便在 Web/应用程序服务器上管理更少的移动部件?
该站点可能会增长到数百万用户和视频。开发团队在 Java 方面经验丰富,会一些 Python,但很聪明,可以快速学习其他技术。
请随时提出您选择的技术堆栈的建议。