实现领域驱动设计-领域子域和限界上下文

领域(domain),广义的领域即是一个组织所做的事情以及其中所包含的一起。每个组织都有自己的业务范围和做事方式,这个业务范围以及在其中所进行的活动便是领域。

对应软件设计来说,一个业务范围以及这个业务范围内的软件活动,就是领域。领域驱动设计,我认为可以说是面向业务的软件设计思想。

一个组织有一个大的业务范围,然后划分为组织部门,也会划分为子业务,这就是子域的概念。对应软件设计,就是把一个大的系统划分为一个多个模块,即多个子域。

限界上下文,是一个语义上的边界,在一个限界上下文中的概念是统一的无二意的,所以通用语言只是在一个限界上下文中统一的。

对应于软件系统来说,限界上下文并不只局限于容纳模型,它通常标定了一个系统,一个应用程序或者一种业务服务。对应微服务架构风格来说,一个限界上下文通常对应着一个微服务。

问题空间是核心域和其他子域的组合。问题空间是领域的一部分,对问题空间的开发将产生一个新的核心域。对问题空间的评估应该同时考虑已有子域和额外所需子域。

解决方案空间包括一个或多个限界上下文,即一组特定的软件模型。这是因为限界上下文即是一个特定的解决方案,它通过软件的方式来实现解决方案。

存在的疑问:

1、两个限界上下文是否可以交叉?分析来说,是不可以交叉的,限界上下文是有明显边界的,如果有交叉,那不就是两个系统的耦合吗?但两个限界上下文肯定是需要有关系,可以通信的,这应该就是下一章要讲的上下文映射图,成为上下文的集成。那限界上下文可以嵌套吗?这是目前我还不清楚的地方?

2、两个领域,如果不是父域和子域的关系,那也应该是不可交叉的?领域代表着业务范围,如果两个域有交叉,那就是业务范围没有划分清楚了,这是DDD中比较忌讳的业务分不清的情况。但领域之间有关系吗,怎么通信?这是目前我还不清楚的地方?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其...
    Vgecanshang阅读 3,930评论 3 13
  • 1.什么时领域驱动设计 领域启动设计(DDD)是一种软件开发方法,它可以帮助我们设计高质量的软件模型。 什么是领域...
    xiaochen0620阅读 389评论 0 0
  • 在开发一个微服务之前,我们要设计微服务。设计微服务和领域驱动设计(DDD)有密切的关系,DDD有助于我们设计微服务...
    书兴阅读 14,889评论 7 40
  • 虽然作为一个正宗的西北人,但事实上我对牛、羊肉并没有特别的热爱,我更热爱鱼、虾、海鲜类。 西北深居内陆,淡水鱼常见...
    安歌音阅读 1,021评论 2 11
  • 【1月20日 385/3650 】 1,【(效能)】全勤,今日吃青蛙*3 2,【(健康)】百日健身12/100,1...
    佩娜阅读 146评论 0 1