领域驱动设计

这篇博客深入探讨了领域驱动设计(DDD)中的核心概念,包括模块作为微服务拆分单元,领域对象强调行为与内聚性,资源库作为统一数据访问管理,以及防腐层在不同上下文交互中的作用。文章还介绍了如何设计领域对象,包括持久化策略和对象创建。最后,领域服务关注于协调各组件,提供交互接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 基本概念

1.1 模块

  • 模块是DDD中明确提到的一种控制限界上下文的手段。
  • 我的理解就是模块是微服务拆分单元
  • 对于模块内的组织,一般是按照领域对象,领域服务,领域资源库,防腐层等组织方式定义的

1.2 领域对象

  • 对应之前设计中的实体对象,但是与以往的仅有getter,setter的实体对象不同,领域对象具有了行为,对象更加丰满。
  • 同时对比将这些逻辑写在服务内(如mvc的service层中),领域功能的内聚性更强,职责更加明确
  • 领域服务调用领域对象,如果领域对象不稳定,可以将领域对象抽离出接口,领域服务依赖抽离出的接口

1.3 资源库

  • 领域对象需要资源存储。以前我们是通过ORM直接映射。只适用于关系型数据库。
  • 而且其实存储的手段有很多种,如关系型数据库,分布式缓存,本地缓存,非关系型数据库。我们将这些统一称为资源库。
  • 所以我们需要提供对领域的存储和访问进行统一管理的对象。(复用,接口抽象化)
  • 资源库对外的整体访问由Repository提供,它聚合了各个资源库的数据信息,同时也承担了资源存储的逻辑(如缓存更新机制)。(即由Repository提供一套通用接口操作所有资源库的手段。它将具体实现隐藏)
  • 我的理解就是我们可以通过资源库来获取、修改、删除一个领域对象,重点说一下如何通过资源库创建一个领域对象,其实对于复杂的领域对象(聚合许多子对象的对象)的创建,这个过程会交给领域对象工厂来完成,然后返回给资源库,而资源库再添加上结果缓存等逻辑。总结就是将对象的装配工作交给工厂。

1.4 防腐层

  • 在一个上下文中,有时候需要对外部上下文进行访问,通常会引入防腐层的概念来对外部上下文的访问进行一次转义。
  • 考虑引入防腐层的情形
    • 需要嫁给你外部上下文中的模型翻译成本地上下文理解的模型(rpc)
    • 不同上下文之间的团队协作关系,如果是供奉者关系,建议引入防腐层,避免外部上下文的变化对本地上下文的侵蚀。
    • 该外部访问在本地上下文中使用广泛,为了避免后续对其改动会影响返回很大。
    • 说白了就像用外观模式封装了对外部上下文的操作,只提供了使操作更方便的接口。
  • 如果内部多个上下文对外部上下文需要访问,那么可以考虑将其放到通用上下文中。

1.5 领域服务

  • 已经将领域行为封装到领域对象中了
  • 已经将资源管理行为封装到资源库中了
  • 已经将对外部上下文的交互行为封装到防腐层中去了
  • 所以领域服务则就专注于通过串联领域对象,资源库和防腐层等一系列的对象的行为,对其他上下文提供交互的接口
  • 如果还需要与用户打交道,则它还负责接收用户请求,返回响应。

2. 设计

2.1 领域对象持久化

  • 插入一条记录就是创建一个领域对象
  • 更新一条记录就是根据key值去修改相应的领域对象
  • 删除数据则是摧毁这个领域对象
  • 领域对象持久化存储的设计思想
    • 将暂时不使用的领域对象从内存中持久化到磁盘中
    • 再次使用时,根据key值到数据库中查找该记录
    • 然后将其恢复成领域对象,应用程序就可以继续使用它
    • 其实这些无关具体数据库,不一定是关系数据库

2.2 如何设计领域对象

  • 领域对象可以有继承关系(但是关系型数据库中不存在继承关系,所以领域对象设计转换为关系型数据库设计需要有特定的方案)
  • 关系型数据库的一对多设计,如果是组合关系(部分不能脱离整体),则这设计为一个领域对象(更像nosql设计)。
内容概要:本文档主要介绍了Intel Edge Peak (EP) 解决方案,涵盖从零到边缘高峰的软件配置和服务管理。EP解决方案旨在简化客户的入门门槛,提供一系列工具和服务,包括Edge Software Provisioner (ESP),用于构建和缓存操作系统镜像和软件栈;Device Management System (DMS),用于远程集群或本地集群管理;以及Autonomous Clustering for the Edge (ACE),用于自动化边缘集群的创建和管理。文档详细描述了从软件发布、设备制造、运输、安装到最终设备激活的全过程,并强调了在不同应用场景(如公共设施、工业厂房、海上油井和移动医院)下的具体部署步骤和技术细节。此外,文档还探讨了安全设备注册(FDO)、集群管理、密钥轮换和备份等关键操作。 适合人群:具备一定IT基础设施和边缘计算基础知识的技术人员,特别是负责边缘设备部署和管理的系统集成商和运维人员。 使用场景及目标:①帮助系统集成商和客户简化边缘设备的初始配置和后续管理;②确保设备在不同网络环境下的安全启动和注册;③支持大规模边缘设备的自动化集群管理和应用程序编排;④提供详细的密钥管理和集群维护指南,确保系统的长期稳定运行。 其他说明:本文档是详细描述了Edge Peak技术及其应用案例。文档不仅提供了技术实现的指导,还涵盖了策略配置、安全性和扩展性的考虑,帮助用户全面理解和实施Intel的边缘计算解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值