Rails/React.js:如何避免重复计算
Rails/React.js: How to avoid duplicate computation
我有一个带有 React.js 前端的 Rails 应用程序。
用户可以上传一个包含一些 JSON 数据的文件,我的应用程序将读取数据并根据数据以漂亮的图形向用户显示一些统计数据。
我还需要一个 API 来接收带有 JSON 数据的请求,进行相同的计算以获得相同的统计信息,然后 return 将文件返回给用户请求中指定的格式(例如 YAML 或 JSON 或纯文本)。
问题是,我到底在哪里进行计算?
如果我在组件的前端某处执行它们,那么我必须在后端编写类似的逻辑,以便 API 可以 return 统计数据。
另一方面,由于我没有将任何内容保存到数据库中,因此创建一个完成计算的模型并没有多大意义。
不确定正确的结构是什么。
因为您需要公开原始 API,所以在您的 Rails 应用程序的服务器端具有逻辑是不可避免的。从您提供的详细信息来看,您的主要考虑似乎应该是避免重复业务逻辑。这只剩下一个解决方案:将您的计算代码放在 Rails 后端,并通过 API.
公开它
您没有将任何内容保存到数据库这一事实很好。服务器通常负责执行操作而不存储任何类型的持久状态。如果不是这种情况,我们将依赖客户端代码在所有地方执行大量计算——这意味着人们的本地机器将试图通过浏览器处理大数据之类的东西;很不切实际。
在服务器端构建 API 后,在 React 应用程序中利用这些 API 端点。流程可能类似于:
- 用户点击上传文件
- React 应用获取文件,读取其中的数据
- React 应用获取相关数据,调用 Rails 应用上的 API 个端点以执行计算
- React 应用获取响应并将这些漂亮的图表放在一起
我有一个带有 React.js 前端的 Rails 应用程序。 用户可以上传一个包含一些 JSON 数据的文件,我的应用程序将读取数据并根据数据以漂亮的图形向用户显示一些统计数据。
我还需要一个 API 来接收带有 JSON 数据的请求,进行相同的计算以获得相同的统计信息,然后 return 将文件返回给用户请求中指定的格式(例如 YAML 或 JSON 或纯文本)。
问题是,我到底在哪里进行计算?
如果我在组件的前端某处执行它们,那么我必须在后端编写类似的逻辑,以便 API 可以 return 统计数据。
另一方面,由于我没有将任何内容保存到数据库中,因此创建一个完成计算的模型并没有多大意义。
不确定正确的结构是什么。
因为您需要公开原始 API,所以在您的 Rails 应用程序的服务器端具有逻辑是不可避免的。从您提供的详细信息来看,您的主要考虑似乎应该是避免重复业务逻辑。这只剩下一个解决方案:将您的计算代码放在 Rails 后端,并通过 API.
公开它您没有将任何内容保存到数据库这一事实很好。服务器通常负责执行操作而不存储任何类型的持久状态。如果不是这种情况,我们将依赖客户端代码在所有地方执行大量计算——这意味着人们的本地机器将试图通过浏览器处理大数据之类的东西;很不切实际。
在服务器端构建 API 后,在 React 应用程序中利用这些 API 端点。流程可能类似于:
- 用户点击上传文件
- React 应用获取文件,读取其中的数据
- React 应用获取相关数据,调用 Rails 应用上的 API 个端点以执行计算
- React 应用获取响应并将这些漂亮的图表放在一起