DDD领域驱动设计

本文深入探讨了领域驱动设计(DDD)的关键概念,包括核心域、子域、通用语言和限界上下文等,并阐述了DDD与微服务的关系。同时,介绍了实体、值对象、聚合根以及领域事件等核心元素,揭示了DDD在复杂业务建模中的优势。此外,文章还讨论了DDD的实施流程,如事件风暴和业务模型与领域模型的关系,为实际项目提供了指导。
摘要由CSDN通过智能技术生成
第一章 DDD关键概念
第二章 领域分析模型
第三章 领域设计模型
第四章 DDD实战

第一章 DDD关键概念

前言

DDD是一种处理高度复杂领域的愿景和方法,他主张在软件项目中把领域本身作为关注的焦点,维护一个对领域有深度认知的软件模型。核心思想是通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。

DDD是面向对象编程,从业务中来到业务中去。MVC是指controller、service、dao,优点是模式固定,可以快速适用小型业务。DDD核心在于领域层划分,能够体现业务建模的灵活性。具体还包括聚合根怎么设计,实体,值对象有哪些,领域服务怎么划分。DDD 的本质是一种软件设计方法,而微服务架构是具体的实现方式。


一、DDD关键概念

  1. 核心域、子域

  2. 通用语言

  3. 限界上下文

  4. 防腐层

  5. 事件风暴

    由DDD专家、项目经理、产品、测试、开发一起进行的业务流程梳理。

  6. 实体和值对象

  7. 贫血模型
    面向过程的编程模式,任何的代码都可以随意修改。

  8. 充血模型
    面向对象

  9. 聚合和聚合根

  10. 领域事件

  11. 领域服务

  12. 工厂和资源库


二、DDD十问

  1. DDD和微服务关系

  2. DDD为什么需要do vo dto po
    vo:view object,视图对象,勇于展示层,作用是把指定页面数据封装起来给到客户端。
    dto: data transfer object ,数据传输对象,作用是展示层和服务层之间传输对象。
    do:domain object,领域对象,充血模型中实体的聚合。
    po: persistent object,持久化对象,持久层,操作数据库等,一张表对应一个po。

  3. 业务模型和领域模型关系

  4. 传统DDD分层架构和cqrs、六边形区别

  5. 执行DDD标准流程
    战略设计 战术设计 域 上下文 实体 值对象 聚合

  6. DDD和传统三层结构比较

  7. 战略设计和战术设计如何理解

  8. DDD面向对象分析方法
    8.1 需求分析
    5W1H8C方法:
    when:用户什么时间用,半夜备份的,需要自动化执行
    where:什么地方用,室内室外
    who:谁来用
    what:给用户提供什么,输出是文档、图片
    why:需求背后痛点

    how:咋么实现

    8个constraint约束:
    性能performance:rt、吞吐量、qps、uv等
    成本:开发成本
    时间:交付
    可靠性:
    安全:涉及到钱、身份证等
    合规性:行业标准法、法律法规、规范等,SOX、ITUT、3C、3GPP等
    技术性:技术方案,是否有特别要求
    兼容性:端发布
    如何画好用例流程图:
    正常梳理:
    异常处理:每一步
    替代处理:每一步

  9. 用例名称:即需求名称

  10. 场景:每个环节详细列出来,场景即用例发生的环境,对应5w中的when、who、where

  11. 用例描述:详细的用例内容,对应what和how,即用户该怎么做,以及每个步骤的输出

  12. 用例价值:why,客户价值

  13. 约束和限制:8c,针对每个流程

8.2 领域建模

8.3 设计模型
8.4 落地实践


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值