This commit is contained in:
by931
2022-09-06 22:30:37 +08:00
parent 66970f3e38
commit 3d6528675a
796 changed files with 3382 additions and 3382 deletions

View File

@@ -189,7 +189,7 @@ function hide_canvas() {
<h2>软件架构模式的演进</h2>
<p>在进入今天的主题之前,我们先来了解下背景。</p>
<p>我们知道,这些年来随着设备和新技术的发展,软件的架构模式发生了很大的变化。软件架构模式大体来说经历了从单机、集中式到分布式微服务架构三个阶段的演进。随着分布式技术的快速兴起,我们已经进入到了微服务架构时代。</p>
<p><img src="assets/1628872362791.png" alt="1628872362791" /></p>
<p><img src="assets/1628872362791.png" alt="png" /></p>
<p><strong>我们可以用三步来划定领域模型和微服务的边界。</strong></p>
<p>第一步:在事件风暴中梳理业务过程中的用户操作、事件以及外部依赖关系等,根据这些要素梳理出领域实体等领域对象。</p>
<p>第二步:根据领域实体之间的业务关联性,将业务紧密相关的实体进行组合形成聚合,同时确定聚合中的聚合根、值对象和实体。在这个图里,聚合之间的边界是第一层边界,它们在同一个微服务实例中运行,这个边界是逻辑边界,所以用虚线表示。</p>

View File

@@ -194,7 +194,7 @@ function hide_canvas() {
<p>领域可以进一步划分为子领域。我们把划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务范围。</p>
<p>我们知道DDD 是一种处理高度复杂领域的设计思想它试图分离技术实现的复杂度。那么面对错综复杂的业务领域DDD 是如何使业务从复杂变得简单,更容易让人理解,技术实现更容易呢?</p>
<p>其实很好理解DDD 的研究方法与自然科学的研究方法类似。当人们在自然科学研究中遇到复杂问题时,通常的做法就是将问题一步一步地细分,再针对细分出来的问题域,逐个深入研究,探索和建立所有子域的知识体系。当所有问题子域完成研究时,我们就建立了全部领域的完整知识体系了。</p>
<p><img src="assets/1628872456555.png" alt="1628872456555" /></p>
<p><img src="assets/1628872456555.png" alt="png" /></p>
<p>我们来看一下上面这张图。这个例子是在讲如何给桃树建立一个完整的生物学知识体系。初中生物课其实早就告诉我们研究方法了。<strong>它的研究过程是这样的。</strong></p>
<p>第一步:确定研究对象,即研究领域,这里是一棵桃树。</p>
<p>第二步:对研究对象进行细分,将桃树细分为器官,器官又分为营养器官和生殖器官两种。其中营养器官包括根、茎和叶,生殖器官包括花、果实和种子。桃树的知识体系是我们已经确定要研究的问题域,对应 DDD 的领域。根、茎、叶、花、果实和种子等器官则是细分后的问题子域。这个过程就是 DDD 将领域细分为多个子域的过程。</p>