Architecture 设计包含多个redux实例的库

Architecture 设计包含多个redux实例的库,architecture,redux,Architecture,Redux,在使用redux时,我有一个设计问题要问你 主要目的是公开一个支持应用程序逻辑的库,并将UI实现留给库用户。该库必须与多个服务进行通信,并接收来自外部源的推送事件 我们的库最初是使用redux+普通javascript设计的。随着体系结构的进一步开发,我们在另一个应用程序中遇到了一个困扰我们的问题:我们可能有不同的团队来处理这个库。这一事实增加了开发/部署过程的复杂性 然后,我们尝试通过以下方法解决此问题: 拥有多个redux“实例”(每个团队一个) 包含API和异步推送事件的公共代码库小得多

在使用redux时,我有一个设计问题要问你

主要目的是公开一个支持应用程序逻辑的库,并将UI实现留给库用户。该库必须与多个服务进行通信,并接收来自外部源的推送事件

我们的库最初是使用redux+普通javascript设计的。随着体系结构的进一步开发,我们在另一个应用程序中遇到了一个困扰我们的问题:我们可能有不同的团队来处理这个库。这一事实增加了开发/部署过程的复杂性

然后,我们尝试通过以下方法解决此问题:

  • 拥有多个redux“实例”(每个团队一个)
  • 包含API和异步推送事件的公共代码库小得多
  • 对API或外部事件的调用会在每个redux实例中触发操作
  • 新状态在公共代码库中分组在一起
以一点过度工程为代价,这将使我们能够为每个团队和单个部署过程提供不同的代码库(除了必须同步但更简单、更不容易更改的公共回购)


你认为这是可行的解决方案吗?

我认为拥有多家门店不是最好的解决方案。我认为最好让每个团队都有自己的常量集、动作创建者和还原器库,它们将在单个存储中使用。这将使开发跨团队集成变得更加容易,代码库最终将更加一致。最大的问题是使视图层更加一致和灵活。你不想有太多不同的
s。最好有多个智能组件

我认为在应用程序之间使用外部连接器和侦听器不值得这么复杂。这是有好处的,因为这样你就完全消除了冲突的可能性(尽管我认为你也可以用我描述的方式)

无论如何,API方法应该封装在redux之外,因此在任何一种情况下都应该是一样的。动作创建者应该导入他们的异步函数,而不是自己使用
fetch