diff options
| author | muqiuhan <[email protected]> | 2025-09-09 06:17:00 +0000 |
|---|---|---|
| committer | muqiuhan <[email protected]> | 2025-09-09 06:17:00 +0000 |
| commit | d5de65fdb1802cdf498d65d93397f290813c377c (patch) | |
| tree | 92fe61a76d20d1203203665d4b48e7f151f088bd /2025/02/11/从事件风暴看领域驱动设计 | |
| parent | 48efa2dfde7c263f84ee5bb0872747034908d607 (diff) | |
| download | blog-d5de65fdb1802cdf498d65d93397f290813c377c.tar.gz | |
deploy: 9665097f0fa0dae9f92123fac54d26c0818758a5
Diffstat (limited to '2025/02/11/从事件风暴看领域驱动设计')
| -rw-r--r-- | 2025/02/11/从事件风暴看领域驱动设计/index.html | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/2025/02/11/从事件风暴看领域驱动设计/index.html b/2025/02/11/从事件风暴看领域驱动设计/index.html index 7afb6836..3ef557ea 100644 --- a/2025/02/11/从事件风暴看领域驱动设计/index.html +++ b/2025/02/11/从事件风暴看领域驱动设计/index.html @@ -194,7 +194,25 @@ <div class="post-content"> <p>事件风暴(Event Storming)是一种领域驱动设计(DDD)的实践方法,由 Alberto Brandolini 提出,旨在通过团队协作的方式快速理解和建模业务领域。</p> <p>以下是事件风暴及相关领域驱动设计中的一些核心概念和知识点:</p> -<p>1. 领域(Domain):指的是业务相关知识的集合,可以进一步划分为子域。<br>2. 子域(Subdomain):是领域的一部分,可以是核心域、支撑域或通用域。<br>3. 核心域(Core Domain):指领域中最核心的部分,通常对应企业的核心业务。<br>4. 通用语言(Ubiquitous Language):团队所有成员使用的一种语言,用于确保业务和软件之间的沟通一致性。<br>5. 限界上下文(Bounded Context):定义了一组规则和协议,用于明确领域模型的适用范围。<br>6. 实体(Entity):具有唯一标识和生命周期的领域对象。<br>7. 值对象(Value Object):描述了某种特性或属性的对象,没有概念标识。<br>8. 聚合(Aggregate):一组相关对象的集合,由一个聚合根(Aggregate Root)统一管理。<br>9. 领域事件(Domain Event):领域中发生的重要事件,可以用于通知其他领域对象或跨限界上下文进行解耦和协作。<br>10. 命令(Command):表示要执行的操作,通常与事件一一对应。<br>11. 读模型(Read Model):为了优化读取操作而设计的模型,可能与写模型不同。<br>12. 决策命令(Decision Command):在事件风暴中,直接导致事件发生的命令。<br>13. 战略设计(Strategic Design):高层次的抽象和归类,包括理清上下文和子域的划分。<br>14. 战术设计(Tactical Design):对特定上下文下的模型进行详细设计,包括聚合、实体和值对象。<br>15. 贫血模型(Anemic Domain Model):领域对象只有属性及其getter/setter方法的纯数据类,业务逻辑通过服务实现。<br>16. 充血模型(Rich Domain Model):领域对象包含业务逻辑,每个对象都是活跃的。<br>17. 资源库(Repository):用于检索和持久化领域对象的机制。<br>18. 服务(Service):在模型中独立的操作,可以是领域服务或应用服务。<br>19. 固定规则(Invariant):为设计元素做出的断言,必须一直保持为真。</p> +<p>1. 领域(Domain):指的是业务相关知识的集合,可以进一步划分为子域。<br> +2. 子域(Subdomain):是领域的一部分,可以是核心域、支撑域或通用域。<br> +3. 核心域(Core Domain):指领域中最核心的部分,通常对应企业的核心业务。<br> +4. 通用语言(Ubiquitous Language):团队所有成员使用的一种语言,用于确保业务和软件之间的沟通一致性。<br> +5. 限界上下文(Bounded Context):定义了一组规则和协议,用于明确领域模型的适用范围。<br> +6. 实体(Entity):具有唯一标识和生命周期的领域对象。<br> +7. 值对象(Value Object):描述了某种特性或属性的对象,没有概念标识。<br> +8. 聚合(Aggregate):一组相关对象的集合,由一个聚合根(Aggregate Root)统一管理。<br> +9. 领域事件(Domain Event):领域中发生的重要事件,可以用于通知其他领域对象或跨限界上下文进行解耦和协作。<br> +10. 命令(Command):表示要执行的操作,通常与事件一一对应。<br> +11. 读模型(Read Model):为了优化读取操作而设计的模型,可能与写模型不同。<br> +12. 决策命令(Decision Command):在事件风暴中,直接导致事件发生的命令。<br> +13. 战略设计(Strategic Design):高层次的抽象和归类,包括理清上下文和子域的划分。<br> +14. 战术设计(Tactical Design):对特定上下文下的模型进行详细设计,包括聚合、实体和值对象。<br> +15. 贫血模型(Anemic Domain Model):领域对象只有属性及其getter/setter方法的纯数据类,业务逻辑通过服务实现。<br> +16. 充血模型(Rich Domain Model):领域对象包含业务逻辑,每个对象都是活跃的。<br> +17. 资源库(Repository):用于检索和持久化领域对象的机制。<br> +18. 服务(Service):在模型中独立的操作,可以是领域服务或应用服务。<br> +19. 固定规则(Invariant):为设计元素做出的断言,必须一直保持为真。</p> <p>事件风暴通常包括以下步骤:</p> <ul> <li>识别领域事件</li> |
