关于单页面Web应用程序架构的愚蠢而明智的关注

时间:2013-07-19 05:42:55

标签: php javascript flex laravel single-page-application

我正在启动一个新的网络应用程序,我有这个非常愚蠢的担忧,我想你会向所有人澄清。

此应用程序将是一个单页面Web应用程序,将以Html,JS / Flex作为前端开发,PHP作为后端开发。所以我有两个选择

  1. 将所有应用程序逻辑保留在客户端,即(JS / Flex),并使用PHP只是为了向数据库输入和输出数据。
  2. 仅将JS / Flex用于UI并将所有应用程序逻辑保留在PHP中,这将作为独立服务使用。
  3. 两者都有优点和缺点,如

    • 如果我选择第一个选项,应用程序的用户体验将会很顺利。 (因为这涉及非常少的客户端服务器交互)
    • 如果我选择第二个选项,应用程序逻辑将在PHP中存在,我稍后可以将其公开为API,以防我希望其他人使用相同的API并构建自定义应用程序。

    但我无法争论两者的利弊,最终敲定一个。请帮助,希望你在开发事业中一定遇到类似的问题。

    提前致谢!

2 个答案:

答案 0 :(得分:2)

出于以下原因,我建议并选择option 2 1.正如您所说,您可以稍后公开API。 2.它将更安全,因为所有应用程序逻辑都将由PHP处理。

答案 1 :(得分:1)

有很多 design patterns 但是因为您对以后制作 API 的可能性感兴趣,所以最适合您的是你的选项2

  

仅将JS / Flex用于UI并将所有应用程序逻辑保留在PHP中,这将作为独立服务使用。

只需使用以下技术之一为单页面应用前端用户界面制作前端:

Difficulty

然后将您的所有业务逻辑转换为RESTful APIPHP或任何其他Python中的backend language来电。

如果这些服务允许完整CRUD而不仅仅Read,我建议您使用OAuth来保护您的服务,只允许授权用户Create, Update, and Delete。您只需使用OAuth PHP library

这样做的原因是它允许您创建任何其他应用程序,只需重建UI而不必重新编写每种语言(C, C++, objective C, C#, Python, PHP, JavaScript, Ruby, etc.)的业务逻辑。然后,当您向公众发布API时,他们会使用有效的用户名和密码(由用户提供)调用您的OAuth service,并且可以创建一个功能丰富的全功能应用,因为您现在已经{ {3}}。这是一个非常重要的概念,虽然开发时间可能较长,但您不必re-architect,因此re-developre-factor代码很多。