【问题标题】:DDD & Event Sourcing: Handle changingsDDD 和事件溯源:处理更改
【发布时间】:2018-01-31 18:47:47
【问题描述】:

几周以来,我一直在阅读有关事件溯源和 DDD 的文章。所以,我需要创造一种无处不在的语言。它到底是什么意思?我需要创建一些定义一些域类的库,不是吗?

所以,我会创建一个 mydomain-language-artifact.jar 工件,它应该被我的服务 AB 使用。

  1. 这个工件究竟应该包含什么?域类(Order、OrderLine、Customer...)。
  2. 是否应该包含EventValue ObjectsAggregates 类?

所以,我猜一切正常,我的域模型发生了变化,我的意思是,Customer 有一个新的alias 字段。所以这意味着我应该更改我的 mydomain-language-artifact.jarCustomer 类上添加此更改,不是吗?

所以这意味着EventsValue ObjectsAggregates 可能也会发生变化。 CustomerAddedEvent 可能会包含一个 alias 字段。那么,存储在 Event Store 中的前一个事件呢?我怎样才能重放它们并重建我的系统?

【问题讨论】:

    标签: jakarta-ee domain-driven-design event-sourcing


    【解决方案1】:

    您需要通过与领域专家交谈来识别这种无处不在的语言。此时你正在以非常错误的方式学习 DDD,因为你把它当作一个食谱。

    DDD 的重点是通过识别用例、概念和关系、相关模型等来了解领域功能。这只是信息,我们使用 DDD 的战术模式进一步组织这些信息。 p>

    这不是写领域类,这表明你的思维方式离 DDD 的意思还很远。我花了 5 年时间才获得 DDD,不要指望它通过阅读 1-2 本书在 2-3 周内“学习”它。不编写代码需要练习和大量的纪律。代码就是实现,它从 DDD 结束的地方开始。

    与事件溯源相同。虽然在某种程度上与 DDD 耦合更容易理解,因为这些领域事件需要正确识别

    您提出了许多无法真正回答的一般性问题,因为这取决于... DDD 的特别之处在于我们逐案关注细节。 p>

    wrote 非常了解 DDD,尤其是需要了解的心态。希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2013-01-24
      • 1970-01-01
      • 2019-02-20
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多