2013-07-16 29 views
1

我正在阅读Implementing Domain Driven Design并且正在苦于上下文映射的概念。上下文之间的通信

本书描述不同上下文如何交流的语言,“RESTful”,“Open Host Service”,“另一个团队”让我怀疑我是否还有不止一个上下文。

这只是我的一个开始,所以没有其他团队,但我仍然想将我的项目分割到上下文中,但显然他们需要沟通。

上下文将被部署在一个进程中,因此他们可以简单地调用其他方法,因此在每个上下文之间不需要Web服务,但本书的上下文映射部分似乎没有处理这个问题。

因此,是否有这些上下文如何交流的名称,或者是我正在描述的内容,因此清楚地说明了一个上下文,因为它是一个团队而不是Web服务。

回答

2

无论实际的传输实现(进程内或HTTP)如何,上下文映射都适用。即使你是一个团队,你当然也可以有多个有界的上下文。本书涵盖了更复杂的集成场景,以解决协调多个团队的困难,但是这些原则无论如何都适用。例如,一旦您在单个应用程序中实现了多个上下文,您可能希望将它们相互隔离,仅用于封装目的。如果是这样,那么创建一个HTTP服务来公开每个上下文的已发布功能是一个选项。即使只有少数开发人员在代码库上工作,这也是可取的。你应该考虑的是你是否实际上有多个有界的上下文。例如,您可能有多个模块,这是在单一模型中分配责任的一种方式。

+0

谢谢,我会坚持这本书,当我到达那里时,我一定会注意到Module,因为这可能会更适合我的情况。 – user2586804

+0

把有界的情境想象成一个无处不在的语言是一致的边界。 。 – JefClaes

2

有界上下文关于模型。单一模型?单边界上下文。多个模型?多重有界上下文。

团队组织在定义这些上下文的范围时发挥作用。一个团队可以在多个环境中工作,并且(非常谨慎)多个团队可以在相同的环境中工作。关键是要明确这一点。

如何集成有界上下文(webservices,in-process等)真的没有关系。重要的是上下文之间的关系类型 - 这将进入您的上下文映射。