其他分享
首页 > 其他分享> > [领域驱动设计]-02-项目与架构

[领域驱动设计]-02-项目与架构

作者:互联网

引言

领域驱动设计的最终目的是能够构建出良好的、可维护的软件架构。那么,一个设计优良的软件架构应该具有如下特点:

  1. 与外部依赖独立
  2. 与底层数据源独立
  3. 与前端展示逻辑独立
  4. 易于测试与更新

要满足以上特性,实际上需要软件的各个部分之间不依赖于具体的实现,只依赖于抽象的接口。

架构

一个典型的DDD架构设计

典型的DDD架构中,包含用户展示层、应用层、领域层与基础设施层。通常来说,只有相邻的层之间才会发生耦合,不相邻的层之间极少发生耦合(观察者模式)

六边形架构(端口与适配器)

在六边形架构中,不强调传统web中的前端与后端。而是以系统为单位,划分为内部与外部。外部(客户)调用系统的内部功能时,通过适配器进行适配。

CQRS架构

image
在这个架构中,对查询和命令进行了不同的处理链路,并使用了隔离的持久化区。通常来说查询命令是一个只读操作,只涉及简单的sql调用(如果使用RDB)。而在命令处理器中,则会对所需的数据进行收集,并对相应的聚合进行状态的更新,同时发布一个领域事件。此时事件订阅器就会根据事件更新查询模型这边的数据,保证了数据的最终一致性。(如果需要较强的一致性,可以通过加入更新时间的字段来保证)

事件驱动架构

通常会和六边形架构一起使用,用于各个六边形系统之间的通信。本质上是一个事件发布与发现、处理的过程,

一个反案

在一个项目中,通常会涉及到与底层数据库的交互

标签:02,逻辑,架构,领域,通常,驱动,六边形,应用层
来源: https://www.cnblogs.com/xy1997/p/16444038.html