关键要点

  • 反应式的分布式应用程序必须知道如何处理有关消息传递的不确定性,包括多次传递和无序传递。
  • 领域驱动设计通过良好的建模来管理不确定性。
  • 处理不确定性的规则必须在领域专家同意的业务逻辑中定义,而不是埋没在技术实现中。
  • 消息去重器或重排器的实现最初看起来可能很简单,但在实际操作时会变得困难。
  • 当可以使用通用语言来定义规则时,实现将变得非常简单且健壮。

我认为应该通过领域驱动设计的方式来开发软件。从Evan最初出版“Domain-Driven Design: Tackling Complexity in the Heart of Software”开始,我们经历了一趟艰难的旅程,已经走了很长的一段路。现在有一些关于领域驱动设计的技术大会,人们对领域驱动设计的兴趣程度也与日俱增,包括业务人士的参与,这是非常关键的。

如今,反应式变得越来越重要,稍后我会解释为什么它获得人们的关注。我认为真正有趣的是,DDD在2003年的使用或实现方式与今天使用DDD的方式截然不同。如果你已经读过我的红皮书“Implementing Domain-Driven Design”,那么你可能已经熟悉这样的一个事实:我在这本书中提到的有界上下文是单独的过程,需要进行单独的部署。然而,在Evan的蓝皮书中,有界上下文在逻辑上是分开的,但有时候部署在同一部署单元中,可能是在Web服务器或应用程序服务器中。现如今,越来越多的人采用DDD是因为它与单独部署机制(例如微服务)不谋而合。

Comments are closed.