DDD背景

学习DDD的原因

notion image
notion image
DDD为了应对软件复杂性,越来越热门
notion image
学习DDD存在的困难
  1. 概念抽象
  1. 只闻其声不见其用
  1. 知其然不知其所以然
notion image
notion image
notion image

学习大纲

notion image
notion image
notion image
notion image
notion image
notion image

DDD核心思想和解决的痛点问题

什么是模型和建模

模型

  1. 模型是对领域的抽象和模拟
    1. notion image
  1. 建模是针对特定问题建立领域的合理模型
    1. 在不同的业务场景,不同领域, 商品,订单,库存的具体模型不一样,
      notion image
 

软件系统的复杂性来自己哪里

软件系统的开发阶段

notion image
 

业务复杂导致模型复杂

案例
人民币在不同的业务下建立不同的模型
notion image
直接将不同业务域的信息揉杂到一张表里,导致业务复杂性上升,后期容易形成大泥球
传统面向对象思想的单一模型
传统面向对象思想的单一模型

技术实现引入额外复杂性

例子: 电商平台系统,一个团队负责数据接入,另外一个团队负责商品服务
数据接入:门店基础信息表,商品表
商品服务需要开发一个商品搜索服务,搜索附近位置门店的商品信息,建立一张额外的门店商品表,数据接入团队需要多维护一个门店商品模型(和数据接入的本体服务无关)
notion image

DDD的关键思想以及如何应对多变的复杂性

DDD的核心思想一 :模型分解

notion image

DDD的核心思想二 :模型驱动设计

用模型驱动设计解决上述案例问题,将搜索独立为子域
notion image
 

面向对象和敏捷与DDD的区别和联系

DDD与面向对象

notion image
notion image

DDD与敏捷

notion image
notion image
 

DDD的发展和未来

notion image
notion image
notion image
notion image
互联网发展的瓶颈,流量增长越来越困难,解决高并发的手段越来越成熟,项目软件的复杂度成为软件开发的痛点
notion image
notion image