我正在阅读Implementing Domain Driven Design并且正在努力应对上下文地图的概念。
本书在描述不同的上下文如何通信时使用的语言,“RESTful”“Open Host Service”,“另一个团队”让我想知道我是否有多个上下文。
这只是我的一个开始,所以没有其他团队,但我仍然想将我的项目划分为上下文,但显然他们需要沟通。
上下文将部署在一个进程中,因此他们可以简单地调用彼此的方法,因此在每个上下文之间不需要webservices,但本书的上下文映射部分似乎没有处理这个。
因此,这些上下文是如何进行通信的,或者我正在描述的是一个上下文,因为它是一个团队而没有Web服务。
答案 0 :(得分:2)
有界上下文是关于模型的。单身模特?单一有界上下文。多种型号?多个有界上下文。
团队组织在定义这些上下文的界限时发挥作用。一个团队可以在多个环境中工作,并且(非常谨慎)多个团队可以在相同的环境中工作。关键是要明确这一点。
如何集成有界上下文(webservices,进程内等)并不重要。重要的是上下文之间的关系类型 - 这将进入您的上下文映射。
答案 1 :(得分:2)
无论实际的传输实现(进程内或HTTP)如何,上下文映射都适用。即使你是一个团队,你当然可以有多个有界的上下文。本书涵盖了更复杂的集成场景,以解决协调多个团队的困难,但这些原则无论如何都适用。例如,一旦在单个应用程序中实现了多个上下文,您可能希望将它们彼此隔离,仅用于封装目的。如果是这样,那么创建HTTP服务以公开每个上下文的已发布功能是一种选择。即使只有少数开发人员在代码库上工作,这也是可取的。你还应该考虑的是你是否真的有多个有界的上下文。例如,您可能有多个模块,这是在单个模型中分配职责的一种方式。