Skip to content

Commit 3aa088f

Browse files
committed
Explain DDD
1 parent cd4c7b3 commit 3aa088f

File tree

4 files changed

+69
-21
lines changed

4 files changed

+69
-21
lines changed
Binary file not shown.
Loading
Loading
+69-21
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,102 @@
11
怎样拆分系统为微服务
22
===============
33
- [怎样拆分系统为微服务](#怎样拆分系统为微服务)
4-
- [1. 何为架构? 有哪些架构风格?](#1-何为架构-有哪些架构风格)
5-
- [2. 动手拆分](#2-动手拆分)
6-
- [2.1 按业务拆分](#21-按业务拆分)
7-
- [2.2 按子领域拆分](#22-按子领域拆分)
8-
- [2.3 拆分原则](#23-拆分原则)
9-
- [SINGLE RESPONSIBILITY PRINCIPLE(单一职责原则)](#single-responsibility-principle单一职责原则)
10-
- [COMMON CLOSURE PRINCIPLE(共同封闭原则)](#common-closure-principle共同封闭原则)
11-
- [2.4 拆分可能会遇到的障碍](#24-拆分可能会遇到的障碍)
12-
- [2.5 定义服务接口](#25-定义服务接口)
4+
- [1. 何为架构?](#1-何为架构)
5+
- [2. 有哪些架构风格?](#2-有哪些架构风格)
6+
- [3. 动手拆分](#3-动手拆分)
7+
- [3.1 按业务拆分](#31-按业务拆分)
8+
- [3.2 按子领域拆分](#32-按子领域拆分)
9+
- [3.3 拆分原则](#33-拆分原则)
10+
- [SINGLE RESPONSIBILITY PRINCIPLE(单一职责原则)](#single-responsibility-principle单一职责原则)
11+
- [COMMON CLOSURE PRINCIPLE(共同封闭原则)](#common-closure-principle共同封闭原则)
12+
- [3.4 拆分可能会遇到的障碍](#34-拆分可能会遇到的障碍)
13+
- [3.5 定义服务接口](#35-定义服务接口)
14+
- [相关书籍](#相关书籍)
1315

1416

15-
## 1. 何为架构? 有哪些架构风格?
16-
## 2. 动手拆分
17+
## 1. 何为架构?
1718

18-
### 2.1 按业务拆分
19+
>The software architecture of a computing system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.
20+
21+
22+
1. 从四个纬度来看
23+
24+
![](./assets/2021-12-29-16-39-01.png)
25+
26+
1. 为什么要有架构?
27+
28+
可伸缩、可靠性、安全性、可快速的交付
29+
30+
## 2. 有哪些架构风格?
31+
32+
三层架构、六边形架构、微服务架构
33+
34+
## 3. 动手拆分
35+
36+
user story
37+
38+
1个user story可能会有多个场景, 场景pre-conditions 和 post-conditions
39+
40+
41+
user story 能产生
42+
43+
domain model & operation
44+
45+
### 3.1 按业务拆分
1946

2047
比如, 在线电商, 订单管理,库存管理,发货管理。
2148

2249
![Example](./assets/2.8.jpg)
2350

2451

25-
## 2.2 按子领域拆分
52+
## 3.2 按子领域拆分
2653

54+
![按子领域拆分](./assets/2.9.jpg)
2755

2856
DDD(领域驱动设计,Domain driven design)
2957

30-
子领域
58+
1. 领域和子领域
59+
60+
核心领域、通用子域、支撑子域
3161

32-
限界上下文
62+
63+
2. 限界上下文
3364

3465
![限界上下文](./assets/bounded_context.png)
3566

36-
## 2.3 拆分原则
67+
3. 实体和值对象
68+
69+
4. 聚合和聚合根
70+
71+
仓储模式、工厂模式
3772

38-
## SINGLE RESPONSIBILITY PRINCIPLE(单一职责原则)
73+
5. 领域事件
74+
75+
6. DDD分层架构
3976

40-
## COMMON CLOSURE PRINCIPLE(共同封闭原则)
77+
六边形架构
4178

79+
## 3.3 拆分原则
4280

43-
## 2.4 拆分可能会遇到的障碍
81+
### SINGLE RESPONSIBILITY PRINCIPLE(单一职责原则)
82+
83+
### COMMON CLOSURE PRINCIPLE(共同封闭原则)
84+
85+
## 3.4 拆分可能会遇到的障碍
4486

4587
* 网络延迟
4688
* 因为同步调用减少可用性
4789
* 获取一致的数据
4890
* 神类问题
4991

50-
## 2.5 定义服务接口
92+
## 3.5 定义服务接口
5193

5294
分为两种, 操作(既有系统级的操作,也有服务之间的协同), 事件(多用于服务间的数据协同)。
5395

54-
![](./assets/1627460364806.jpg)
96+
![](./assets/2021-12-29-16-53-33.png)
97+
98+
## 相关书籍
99+
100+
* 实现领域驱动设计
101+
* 中台架构与实现
102+

0 commit comments

Comments
 (0)