【问题标题】:How to do reactive hexagonal architecture如何做反应式六边形架构
【发布时间】:2019-03-17 19:18:00
【问题描述】:

我总是听说六边形架构必须与任何框架无关,并使用接口 (SPI) 来委派不属于业务层的代码的每个部分。

但是如何在不使用额外框架的情况下通过六边形架构创建反应式业务层? 大多数时候 SPI 的实现将是响应式的(API 的实现/适配也是),业务层的核心也应该是响应式的。

是否有任何 JSR(由每个响应式框架实现)可以使用?或者我应该定义自己的框架并使用我将在下一部分中使用的最终框架进行调整?

【问题讨论】:

  • 当你说响应式框架时,我假设你的意思是库(如 RxJava 或 Reactor)。这也将回答您的问题。
  • 是的,我指的是 RxJava 或 Reactor。但这并不能回答我的问题。如果我使用其中一个框架,我与另一个不兼容。这尤其是问题所在。此外,据我所知,不可能使用专用框架创建任何六边形,否则该六边形仅与该框架相关联,不能以其他方式使用。
  • 库不是框架。是的,Java 9 提供了一组标准接口。即使没有它们:核心定义了合同。如果适配器使用不同的库,那就这样吧!
  • 嗨@OlivierTerrien,您找到实现反应式六边形架构的解决方案了吗?
  • 嗨。是的,我们决定集成 project reactor,它运行良好。

标签: reactive-programming hexagonal-architecture


【解决方案1】:

我从来没有按照响应式编程方法开发过软件,我对此了解不多……但我知道它是一种编程范式,所以它定义了你必须编写源代码的方式,你如何拥有构建它,等等。

从我的角度来看,RxJava 不会被视为一个框架,就您用来与应用程序之外的参与者进行通信的技术而言。 RxJava 将是一种编程语言 (Java) 的扩展,它缺乏用它编写反应式代码的机会。

所以我认为使用 RxJava 编写六边形源代码没有问题。

【讨论】:

  • 谢谢 choquero70,但是如果我使用 RxJava 编写我的六边形,我将不得不调整,至少,当我必须在 Spring Boot 响应式中编写基础部分时,因为 RxJava 和 Reactor不一样。
  • 好吧,正如我所说,我对响应式编程的东西了解不多。如果可以的话,我会更深入地研究一下,我会告诉你的。但基本上这个想法是反应式工具不会被认为是技术,所以你可以在六边形中使用它们,因为它们用于根据哲学编写软件,一种范式,因为你使用的编程语言缺乏它。如果您使用包含它的编程语言,则不需要它们。我认为它们是编程语言的一部分
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
相关资源
最近更新 更多