DDD 领域驱动架构设计
2023-11-10 21:40:09 8 举报
领域驱动设计(DDD)是一种软件开发方法,它关注于核心领域和领域逻辑的理解与实现。通过将复杂的业务问题划分为多个子域,并针对每个子域进行深入分析,DDD能够帮助团队更好地理解业务需求,提高代码的可维护性和可扩展性。在DDD中,实体、值对象、聚合根等概念被用来表示领域中的对象和关系,而领域事件则用于支持领域模型的异步通信。此外,DDD还强调了分层架构的重要性,包括应用层、领域层、基础设施层等,以实现各层之间的解耦和职责分离。总之,DDD是一种富有创造力的软件开发方法,它能够帮助团队更好地应对复杂业务场景的挑战,提高软件质量和开发效率。
作者其他创作
大纲/内容
@三鱼
Interfaces Layer
Mobile
发布
微服务内
订阅
PO
Domain Service
缓存仓储实现
Assembler
repository interface
Controller
聚合根... ...
Interfaces 层
前端应用APP
MQ 消息队列
WF
WF(Web 框架/路由)
Client
DTO
事件总线
仓储接口
应用服务
基础设施层
数据库
文件/缓存等
封装
基础库/工具
持久化(仓储实现)
MVC 传统架构 vs DDD 领域驱动设计
DDD 领域模型 > 完整分层架构
文件、缓存等数据访问
Service
SPA
密钥管理
聚合
领域服务
应用服务调用
DDD 分层架构图
RPC/API
事件发布
Application 层
数据库仓储实现
接口
Application Service
Domain Layer
消息队列
Repository
Browser
基础层
View 视图层
组合封装
Why DDD ?The following are the reasons to consider using DDD:- Provide principles & patterns to solve difficult problems.- Base complex design on a model of the domain.- Initiate a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses domain problems.
实现
配置管理
Event
应用层
数据装配
控制器
事件订阅
第三方 API/SDK
... ...
Event service release
… …
code execution
Application Layer
BO (Business Object)
事件发布订阅
Repository implement
… …
领域层
DDD 微服务消息订阅
Model 模型层
微服务外
实体
Facade
接口层
VO (View Object)
Infrastructure
Domain 层
Converter
仓储服务
Infrastructure 层
Infrastructure Layer
Persistence
Entity
实体值对象
DDD 简易模型(Dependency Inversion)
Aggregate
数据传输对象DTO
API 网关
SDK
Interfaceimplementation
缓存
转化器
前端
值对象
infra-sdk interface
Controller 业务层
0 条评论
回复 删除
下一页