Files
knowledge-kit/Chapter3 - Server/3.10.md
2021-09-18 01:14:35 +08:00

23 lines
1.7 KiB
Markdown
Raw Blame History

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