学习DDD的原因学习大纲DDD核心思想和解决的痛点问题什么是模型和建模模型软件系统的复杂性来自己哪里软件系统的开发阶段业务复杂导致模型复杂技术实现引入额外复杂性DDD的关键思想以及如何应对多变的复杂性DDD的核心思想一 :模型分解DDD的核心思想二 :模型驱动设计面向对象和敏捷与DDD的区别和联系DDD与面向对象DDD与敏捷DDD的发展和未来
学习DDD的原因
DDD为了应对软件复杂性,越来越热门
学习DDD存在的困难
- 概念抽象
- 只闻其声不见其用
- 知其然不知其所以然
学习大纲
DDD核心思想和解决的痛点问题
什么是模型和建模
模型
- 模型是对领域的抽象和模拟
- 建模是针对特定问题建立领域的合理模型
在不同的业务场景,不同领域, 商品,订单,库存的具体模型不一样,
软件系统的复杂性来自己哪里
软件系统的开发阶段
业务复杂导致模型复杂
案例
人民币在不同的业务下建立不同的模型
直接将不同业务域的信息揉杂到一张表里,导致业务复杂性上升,后期容易形成大泥球
技术实现引入额外复杂性
例子: 电商平台系统,一个团队负责数据接入,另外一个团队负责商品服务
数据接入:门店基础信息表,商品表
商品服务需要开发一个商品搜索服务,搜索附近位置门店的商品信息,建立一张额外的门店商品表,数据接入团队需要多维护一个门店商品模型(和数据接入的本体服务无关)
DDD的关键思想以及如何应对多变的复杂性
DDD的核心思想一 :模型分解
DDD的核心思想二 :模型驱动设计
用模型驱动设计解决上述案例问题,将搜索独立为子域
面向对象和敏捷与DDD的区别和联系
DDD与面向对象
DDD与敏捷
DDD的发展和未来
互联网发展的瓶颈,流量增长越来越困难,解决高并发的手段越来越成熟,项目软件的复杂度成为软件开发的痛点