【问题标题】:Frontend architecture前端架构
【发布时间】:2011-04-12 10:53:24
【问题描述】:

目前我们拥有非常重量级的前端(实际上是一个应用程序中的前端+后端)。前端包含所有逻辑:UI、业务逻辑、持久化逻辑等等。它非常复杂且难以维护,因为一些平台问题(它是用 PHP 编写的),例如缺少连接池。

所以我想出了一个分离前端和后端的想法。后端可以写在更方便的平台上(我们打算用Java),前端可以继续用PHP。

我认为 UI 逻辑是前端应该做的所有事情。并且应该对在此处执行的代码库应用一些限制:

  1. 没有直接的数据库调用。数据库调用难以扩展,也难以提供 SLA。
  2. 到后端的非阻塞集成 plotocol。如果前端向后端请求某些内容,前端应该能够不阻止此请求。它可以从两个方面帮助我们:

    一个。我们可以向后端发送并行请求(并行 I/O);

    b.我们可以为请求(SLA)提供超时。有时最好快速失败并且不要阻塞客户端。

因此,考虑到以上所有因素,我认为前端的最佳架构(在我的情况下,我不是传播灵丹妙药)是 UI 逻辑,它仅以非阻塞方式与 REST/SOAP 后端通信。你觉得这些东西怎么样?

【问题讨论】:

  • 数据库层可以有 Hibernate 或 Spring JDBC 以进行更清洁和高效的 DB 调用处理,也就是说,如果您使用的是 Java。

标签: java php architecture integration frontend


【解决方案1】:

您可以使用以下架构。

  1. 您可以使用任何 JS 框架,例如 Angular 4 或 ReactJS,因为它们都具有服务器端渲染功能。这也适用于单/多应用程序。
  2. 用 PHP 定义 RestFul API,所有业务逻辑都在其中。 API 应托管在不同的服务器上。
  3. 要确保 API 安全,您可以进行 OAuth 身份验证。
  4. 如果您使用 PHP,我建议使用存储过程而不是硬编码 SQL 查询或任何 ORM。

【讨论】:

    【解决方案2】:

    您可能想为您的前端研究 node.js - 它是新的,但它具有非常酷的异步(即非阻塞)架构。确实意味着将 PHP 抛在后面,但如果您无论如何都要进行重大重写,那不会增加太多新工作。

    【讨论】:

      【解决方案3】:

      对我来说听起来不错,您可以选择在服务器端和客户端(通过 AJAX)从(java?)BL 中提取信息。

      我认为 UI 逻辑都是前端 应该这样做。

      是的 - 你肯定是在想清楚:)

      【讨论】:

        猜你喜欢
        • 2012-01-09
        • 1970-01-01
        • 2018-06-03
        • 2021-05-08
        • 2010-12-28
        • 2019-06-06
        • 1970-01-01
        • 1970-01-01
        • 2021-01-05
        相关资源
        最近更新 更多