【发布时间】:2012-10-16 19:13:50
【问题描述】:
假设我已经为我的客户构建了一个系统,让赌徒可以维护赌注组合并随着时间的推移跟踪他们的收益/损失。 该系统支持许多复杂的领域逻辑 - 投注不同的体育项目、将胜利滚动到其他投注等。
接下来,我的客户想要支持提示者的想法。提示者实际上并不赌博,而是他们 创建“提示表”,这是他们关于下注的提示。提示表可以是不同的 种类 - 有些可以包括任何可投注赛事的提示,其他仅提供有关赛马的提示,等等。 我的客户希望系统以与跟踪提示者表现相同的方式跟踪提示者的表现 赌徒,还可以比较不同类型的情报员内部和之间的表现(例如,谁是最好的赛马情报员?他们通常比足球情报员表现更好吗?)
现在,赌徒和推销员之间的领域语言完全不同,还有额外的 赌徒投资组合不存在的提示表分类。这表明这些是单独的有界上下文。 但是,它们有很多共同的逻辑,因为它们都随着时间的推移跟踪性能。
所以我的问题是:
- 这些真的是独立的有界上下文吗?我对在赌徒的上下文中添加分类持谨慎态度(感觉就像一个滑坡)。
- 如果它们是不同的上下文,我应该:
- 在它们之间共享性能跟踪逻辑(即共享 DLL、jar 等)?这会在感觉错误的上下文之间创建紧密的实现耦合。
- 将性能跟踪逻辑留在赌博有界上下文中,将分类逻辑置于提示者边界上下文中,并要求赌博上下文跟踪性能?在这种情况下,提示者上下文似乎会将命令发送到赌博上下文,这又让人感觉不对(我更喜欢事件)。
- 做其他事情...某种组合层在两个上下文之间进行通信和关联?
澄清
赌徒的投资组合和提示者的提示表几乎相同 - 唯一的区别是提示表可以分类(例如赛马、足球等)。
绩效跟踪是关于衡量投资组合/提示表的损益。
【问题讨论】:
-
我认为这是一个简单的组合与继承问题。您需要组合和至少 3 个有界上下文:提示、赌博、用户目录。性能跟踪将是最后一个的一部分,或者它应该有一个专用的 BC,我不确定,但我只知道一些 DDD...
标签: domain-driven-design bounded-contexts