张逸说

出口成张,逸派胡言

0%

我在GitChat上最新开通了一个Chat,主题为:限界上下文的菱形对称架构。为有利于搜索,更名为:领域驱动设计的菱形对称架构,但主要针对的是领域驱动设计的核心模式:限界上下文(Bounded Context)。订阅链接为:https://gitbook.cn/m/mazi/activity/5e55150b238b2a7efa28c297?sut=a4e7d37057cd11ea9c3fc7812f451dce&utm_source=chatweixinshare

在实施领域驱动设计的过程中,限界上下文扮演了关键角色:它既是维护领域模型完整性与一致性的重要边界,又是系统架构的重要组成部分。随着社区对限界上下文的重视,越来越多的人开始尝试将更多的架构实践与限界上下文融合在一起,创造出符合领域驱动设计的架构模式。

菱形对称架构(Diamond Symmetry Architecture)模式脱胎于六边形架构与分层架构,它以领域为核心对限界上下文的关注点进行划分,建立了由内部领域模型外部网关组成的内外分层架构,以菱形的对称结构清晰展现了限界上下文的内部结构,指导着限界上下文的协作关系。引入菱形对称架构有助于促进团队对限界上下文与上下文映射的一致理解,并促成团队形成统一的代码模型。

在本场Chat中,会讲到如下内容:

  • 六边形架构与整洁架构

  • 领域驱动设计分层架构

  • 菱形对称架构的形成

  • 菱形对称架构对元设计模型的改造

  • 菱形对称模型对架构的指导

适合人群:具有领域驱动设计基础的架构师、开发人员

如果订阅人数在六天内达到120人,本次Chat就算成功,接下来就是发布这次分享内容的文章。

我在GitChat发布了《领域驱动设计实践战略篇+战术篇课程,购买该课程的学员还可以免费加入由我创建,GitChat维护的DDD微信群。目前,已创建三个微信群,人数达到1200人左右。在这三个群里,每天都有DDD的爱好者参与激烈的讨论,讨论的质量也格外的高。我几乎可以自豪地说,天下DDD英雄已尽在群中矣。

感谢志愿者@子鱼每天不辞辛劳对群里问题的收集。本文遴选了部分问题给以回答。

阅读全文 »

当我们在讨论领域驱动设计时,不止要谈到领域驱动设计固有的设计概念,结合开发语言和开发平台的设计实践,又会有其他设计概念穿插其中,它们之间的关系并非正交的,解决的问题和思考的角度都不太一致,许多设计概念更有其历史渊源,却又在提出之后或者被滥用,后者被错用,到了最后已经失去了它本来的面目。因此,我们首先需要揭开这些设计术语的历史迷雾,理解其本真的概念,然后再确定它的统一语言。

阅读全文 »

我并非要刻意创造一个方法体系,仅仅是在领域驱动设计的大旗下,发现以“场景”为起点,会有更为系统的设计过程。设计本身会有许多驱动力,场景驱动的方式并没有超出领域驱动的范畴,只是以场景来描述会更准确。

我对场景的定义为:具有业务价值的,由参与者触发的,按照时序排列的一系列连续执行的任务过程。场景的层次与Alistair Corkburn设定的用例层次一致,可以简单分为三个层次:概要目标、用户目标和子功能。

用户目标被Corkburn形象地比喻为“海平面”,它是最重要的目标,可以认为是业务需求与系统需求的分界线。只有满足用户目标的场景才体现了业务价值,因此,位于这一层的场景才可以认为是“领域场景”。准确地说,场景驱动设计其实是领域场景驱动设计,如此才能体现通过业务来驱动设计的事实。

阅读全文 »

在确定了全景事件流之后,可以在战略设计层面继续精进,鉴别出领域与限界上下文的边界。这里略过不提,且进入战术设计阶段的领域分析建模。

阅读全文 »