您好,我对一个项目有一些疑问,我的想法不太清楚。
我会使用 ElectronJS 创建一个本地第一个应用程序,所以基本上存储一些数据,如用户数据、用户历史记录......
但我还想在在线时将该数据发送到远程服务器,以获得一些云功能,以及其他只能在线使用的功能。 (回AdonisJS)
我现在的问题是:我该如何设置这个项目?
我想了很多解决方案,例如:
我想避免代码重复,以及所有相关的工作,所以基本上做一个 pnpm monorepo 或 SDK 或类似的东西来共享请求,客户端将使用此代码执行自己的请求,服务器也是如此。
我也想使用TRPC...
那么,有人对这个项目的架构有什么想法吗?使用什么技术?什么会让我的生活更轻松。
我想使用的堆栈:
我暂时没有尝试过任何东西,我真的很想为这个项目找到最好的堆栈和架构。
如果愿意编写大量同步代码,您可以使用 RxDB、SQLite、WatermelonDB 或任何其他客户端数据库来持久存储本地状态。
如果您想要一些东西,允许您在 Typescript 中编写单个架构,并自动同步到服务器,同时首先完全本地化,我建议您查看 Triplit。
如果您必须编写自己的后端(例如,像您提到的那样在 Adonis 中),您可以设置 GraphQL 后端以与 RxDB 或 GraphQL 客户端库(如 URQL 或 Apollo)同步。但公平的警告是,很容易产生潜在的错误,这些错误只有在部署到生产环境并且有多个用户使用您的应用程序时才会出现。我强烈建议使用 Triplit 或 Electric SQL 等具有强大分布式系统基础的工具。