mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-25 20:00:40 +00:00
23 lines
1.7 KiB
Markdown
23 lines
1.7 KiB
Markdown
# 领域驱动设计与中后台、BFF的关系
|
||
|
||
|
||
1. DDD 将业务拆分为多个领域,比如订单、商品...。每个域的服务是单独可以运行、维护的。比如订单域有10台机器,1台负载均衡,9台真正做事情的机器。有任务过来调度器进行任务派发。
|
||
2. 客户端或者大前端都存在模块的概念。比如商品、订单,也是以 Pods 的形式去维护,每个领域的代码都单独可以运行、维护。模块之间不存在耦合关系,通过接口的形式去能力发现、能力调用。比如订单域通过某个接口访问某个商品详情的能力
|
||
3. DDD 的最佳实践是不是微服务。比如订单服务所在的工程,可以单独运行、维护。
|
||
4. 基于微服务,肯定需要一个 BFF 层,扮演业务编排、字段转换。比如订单域的模型有100个字段。但是订单的接口为客户端服务,客户端(通过接口找2018~2020年的、待付款的订单),BFF 层就去扮演数据组装、字段筛选的作用。
|
||
|
||
|
||
## 聚焦核心域
|
||
|
||
Domain 按照业务能力划分,围绕着一个独立清晰的业务目标,有内聚的核心概念
|
||
|
||
1. 核心域:
|
||
- 决定产品和公司核心竞争力的子域
|
||
- 它是业务成功的主要因素和公司的黑心竞争力
|
||
- 需要投入优秀的资源和精力,建立好核心竞争力
|
||
|
||
2. 支撑域:不包含决定产品和公司核心竞争力的功能,需要定制开发,帮助核心域达成目标
|
||
3. 通用域:通常市场上已有成熟的解决方案,通用子域的解决方案可以来购买现成的,也可以采用外包的方式。
|
||
|
||
- https://tech.meituan.com/2017/12/22/ddd-in-practice.html
|
||
- https://juejin.cn/post/6997250621627858957#heading-3 |