【问题标题】:Should graph data be generated in the back end or front end?图形数据应该在后端生成还是前端生成?
【发布时间】:2014-10-05 23:33:10
【问题描述】:

我最近在办公室一直在讨论,是提供通过我们内部后端 api 准备的图形数据还是提供通用数据并在前端解析为图形格式。以下是我从我的团队收集的基本笔记:

前端专家:

  • 数据以通用格式从后端传输
  • 因为数据是通用形式,所以可以使用任何图形渲染前端。只要编写了解析器方法

前端缺点:

  • 前端需要包含某种解析器,以将通用数据转换为实际的图形数据

后端专家:

  • 可以以正确的格式提供数据,无需前端解析

后端缺点

  • 锁定我们可以使用的图形库

这似乎是一个非此即彼的场景,但我想问这个问题以获得任何其他可能的见解。

后端是指 REST API,前端是指 Web 应用程序 (Javascript)。

【问题讨论】:

  • 我想你已经自己写了答案,你有更多的前端专家..
  • @ion 而且同时,所有的专业人士都不是平等的
  • REST API 不应该准备视图,应该只提供数据,前端是你如何呈现它,加上处理能力在客户端,再加上设计可以狂野。

标签: javascript php graph frontend backend


【解决方案1】:

如果后端能够进行转换,那么理想情况下,客户端可以选择获取原始输出或格式化输出。两全其美?

【讨论】:

    【解决方案2】:

    要向您的列表添加更多内容,您可以考虑以下因素。

    • 在后端对数据进行序列化和操作会占用更多 RAM,因为您的所有数据都首先加载到内存中。
    • 为了保持后端标准化和结构化,您应该只通过 REST API 访问资源。处理如此大规模的数据对您的 API 没有真正的价值。
    • 使用前端处理数据将使用更多本机资源,因此可以节省服务器大量处理和创建“图形”数据的内存。图表将以本机速度呈现,而不是挂在服务器上以首先构建它。
    • 除非您编写的应用程序经常受到劫持/黑客攻击的威胁(例如银行)。您真的不需要担心其他人会编写他们自己的图表版本。这需要太多时间,而且您并不完全需要考虑对业务/应用程序构成可行威胁。

    希望我能有所帮助。
    附言

    我建议将后端 REST API 仅用作数据库/资源​​公开,并且没有太多应用程序逻辑。

    您的 JS 应用程序应该处理所有数据操作,以构建它试图传达的任何信息。

    【讨论】:

    • 我目前正在使用相同的方法。但是,我担心服务器必须发送数以万计的通用数据行的情况。在这种情况下,太多的信息将被发送到前端。意味着更多数据供客户端下载。相反,如果我们在后端处理数据,与向前端发送数以万计的行相比,它只会发送几个字节。我有时想知道我将通用数据发送到前端的决定是否正确。
    • 在一个请求中发送大量数据似乎是一个基础设施问题而不是逻辑问题。仅当您聚合每天仅请求几次的内容时,才需要在服务器上处理大量数据与请求。如果您要向前端发送大量数据,请考虑将其流式传输而不是聚合它。 @ShyamalParikh
    【解决方案3】:
    • 昂贵的计算或任何类型的图形计算都应该在后端进行。即使后端最终消耗更多内存或 cpu,您也可以通过基于 CPU、响应时间、内存等扩展/自动扩展后端服务器来控制它。
    • 如果前端进行计算并假设它具有数年和数月的数据点,则处理发生在您的应用程序也无法控制的客户端浏览器应用程序上。对于同时玩多个浏览器标签或应用的用户来说尤其如此。
    • 如果所有计算都在后端完成,则更容易调试或指出问题。

    【讨论】:

      猜你喜欢
      • 2021-10-22
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 2018-02-03
      • 2013-09-16
      • 2020-12-12
      • 2019-02-20
      • 2010-09-19
      相关资源
      最近更新 更多