图形数据是在后端生成还是前端生成?

Should graph data be generated in the back end or front end?

本文关键字:前端 后端 数据 图形      更新时间:2023-09-26

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

前端优点:

  • 数据以通用格式从后端传输
  • 由于数据是通用形式,因此可以使用任何图形渲染前端。如果解析器方法被写入

前端缺点:

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

后端优点:

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

后台管理

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

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

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

要在您的列表中添加更多内容,您可以考虑以下内容:

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

希望我帮了点忙。
p

我建议使用后端REST API仅作为数据库/资源公开,而不包含太多的应用程序逻辑。

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

  • 昂贵的计算或任何类型的图形计算应该在后端进行。即使后端最终消耗更多的内存或cpu,您也可以通过基于cpu,响应时间,内存等扩展/自动扩展后端服务器来控制它。
  • 如果前端做计算,假设它有几年或几个月的数据点,处理发生在客户端的浏览器应用上,而你的应用也无法控制。对于那些同时玩多个浏览器标签或应用程序的人来说,这尤其适用。
  • 如果所有的计算都在后端完成,调试或定位问题会更容易。

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