我们尝试将我们的领域拆分为有界上下文,以实现模块化应用程序设计/架构。
我们做了一个启发性的 EventSorming 会话,它帮助我们识别有界上下文及其聚合。研讨会结束后,每个参与者都同意我们确定的有界上下文。
然而,我们感到不舒服,因为我们担心我们的有限上下文仍然太大。EventStomring 专注于领域事件/流程,这是我们用来识别有界上下文的主要构建块。
我们还确定了诸如“合同”之类的聚合。每个合约几乎都遵循相同的流程,但这些合约包含的数据量可能会有很大差异。有非常简单的合同类型和合同类型,其中包括许多附加数据和附件。
仅仅因为聚合的数据更复杂而声明另一个有界上下文是否有意义?
这两种方法都有其缺点:
- 在一个有界上下文中实现所有合约类型可能会导致代码中出现大量 if 语句,以处理不同的数据。
- 仅仅因为某些数据不同,提取新的有界上下文可能会导致大量重复代码。
任何建议/最佳实践如何处理这个?