1

我正在开发一个处理短期课程的应用程序,基本上客户可以注册或预订课程,购买课程所需的书籍或其他材料(杂项)。

用例是:

As a sales person
I need to record customers orders (reservation, registration, miscellaneous)
So that I can keep track of each slots needed

但是在与领域专家讨论时。

Lets say the customer orders
1 English Course Registration which costs 499
1 Translation Course Registration which costs 899
1 Reservation for HR Resource 899
1 Book which cost 250

Then
I should have
1 Order containing all the 4 items (2 course, 1 reservation, 1 book) including the prices.

1 course registration for English  (includes the Order No., unique Registration No.)
1 course registration for Translation (includes the Order No., unique Registration No.)
1 reservation form. (includes the Order No. and unique Reservation No.)

(报名有Registration No.、Order No.供参考以及课程名称、日期、地点)

请注意,我们允许部分付款。

我将Sales Order其视为单独的有界上下文和Registration & Reservation Bounded Context另一个

但是基于跨越边界的用例,这是否意味着应该合并两个上下文?

4

1 回答 1

2

严格来说,限界上下文仅受通用语言的使用限制——也就是说,当您发现同一个词在不同的人或不同的人使用时具有略微不同的含义时,您会得到一个提示,即您需要一个新的限界上下文。次。

在这种情况下,在销售人员记录客户订单的情况下进行“注册”与在某人预订课程中的位置的情况下进行注册是一回事,这将是值得探索的。

同样的事情,我的意思不是完全相同的注册,我的意思是 - 在每种情况下,它的行为方式是否相同?相同的属性重要吗?

如果答案是肯定的——那么也许你真的在看同一个有界上下文。但也有可能您正在查看在不同的有界上下文中以不同方式表示的同一事物。

这实际上是使用单独的有界上下文最自由的部分:

  1. 在销售订单上下文中,您可以准确地对注册进行建模,以使其成为订单的一部分。
  2. 在 Registration & Reservation 上下文中,您可以准确地对注册进行建模,以保留位置并确认出席(我假设)。

只要您选择一种唯一标识注册的方式,允许您关联两个上下文中的注册 - 以及允许您协调跨上下文的长期运行工作流的集成策略(例如,REST API 或异步消息传递) - 也就是传奇,那很好。

于 2016-09-18T10:34:20.743 回答