使用redux时,我有一个设计问题。
主要目的是公开一个支持我们应用程序逻辑的库,并将UI实现留给库用户。该库必须与多个服务进行通信,并且还接收来自外部源的推送事件。
我们的库最初设计为使用redux + plain javascript。随着我们进一步开发架构,我们在另一个应用程序中遇到困扰我们的问题:我们可能有不同的团队在这个库上工作。这一事实增加了我们的开发/部署过程的复杂性。
然后我们尝试用以下方法解决这个问题:
以过度工程化为代价,这将使我们能够为每个团队和单独的部署流程提供不同的代码库(除了必须同步但更直接且更不易于更改的公共仓库)。
您认为这是可行的解决方案吗?
答案 0 :(得分:0)
我认为拥有多家商店并不是最佳解决方案。我认为让每个团队拥有自己的常量库,动作创建器和减速器会更好,这些常量库将在单个商店中使用。这将使开发跨团队集成变得更加容易,并且代码库最终会更加一致。最重要的是使视图层更加一致和灵活。你不想拥有大量不同的<Provider />
。拥有多个智能组件会更好。
我不认为在应用程序之间使用外部连接器和监听器是值得的复杂性。那里有一些好处,因为那样你就完全消除了冲突的可能性(虽然我认为你可以用我描述的方式做到这一点)。
API方法应该在redux之外封装,所以在任何一种情况下都应该相同。动作创建者应该导入他们的异步函数,而不是自己使用fetch
。