简单总结下在项目中DDD的应用过程。

基于 DDD 的微服务设计通常采用事件风暴方法。
通过事件风暴完成领域模型设计,划分出微服务逻辑边界和物理边界,定义领域模型中的领域对象,指导微服务设计和开发。
这里的重点,是根据领域划分出清晰的边界,而且这个过程是随着领域知识的深入,不断迭代的。

事件风暴的过程,通常包括产品愿景、场景分析、领域建模、微服务设计和拆分等几步。

1.产品愿景

产品愿景是用于确定产品或项目目的,明确市场需要和核心需求。
比如下面介绍的系统,是个大数据分析软件,指在根据具体规则对数据生成预警,数据量大概在PB级别。
当用户创建分析任务,对人员的数据实时计算预警结果,并触发用户。

2.场景分析

场景分析是根据产品愿景和用户需求,确定需要满足的业务场景。
分析本系统后业务场景有

  • 用户选择规则和人员,创建分析任务。
  • 任务创建后,需要执行审批。
  • 根据分析任务和人员数据,生成预警。
  • 根据分析任务和预警数据,生成通知触发用户。

3.领域建模

领域建模是根据业务场景和问题域进行分析,建立领域模型,划分出清晰的边界。
向上通过限界上下文指导微服务边界设计,向下通过聚合指导实体的对象设计。

4.微服务设计和拆分

微服务拆分和设计是结合业务限界上下文与技术因素,对服务的粒度、分层、边界划分、依赖关系和集成关系进行梳理。

5.详细设计

详细设计是结合具体的业务功能来开展,主要工作包括:系统界面、数据库表以及字段、服务参数规约及功能等。
这里就是常规的UML和ER图的设计了。

实例——领域驱动设计DDD相关推荐

  1. 领域驱动设计 (DDD)实例分析

    本文结合实例来分析下领域驱动设计 (DDD) 文章目录 啥是DDD 啥是驱动 DDD误解 啥时候用 啥是复杂 具体解决啥 为啥会耦合 咋解决耦合 咋做分治 咋做分界 模块 分层 咋落地 本文小结 啥是 ...

  2. 领域驱动设计(DDD)实践之路(三):如何设计聚合

    本文首发于 vivo互联网技术 微信公众号  链接:https://mp.weixin.qq.com/s/oAD25H0UKH4zujxFDRXu9Q 作者:wenbo zhang [领域驱动设计实践 ...

  3. 领域驱动设计(DDD)实践之路(四):领域驱动在微服务设计中的应用

    这是"领域驱动设计实践之路"系列的第四篇文章,从单体架构的弊端引入微服务,结合领域驱动的概念介绍了如何做微服务划分.设计领域模型并展示了整体的微服务化的系统架构设计.结合分层架构. ...

  4. 领域驱动设计DDD(一)

    领域驱动设计DDD(一) 一.何为领域驱动设计 二.模型驱动设计 (一)分层架构 (二)实体 (三)值对象 (四)服务 (五)模块 (六)聚合 (七)工厂 (八)资源库 三.面向深层理解的重构 (一) ...

  5. 领域驱动设计(DDD:Domain-Driven Design)

    领域驱动设计(DDD:Domain-Driven Design) Eric Evans的"Domain-Driven Design领域驱动设计"简称DDD,Evans DDD是一套 ...

  6. python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))...

    昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据.StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对象 ...

  7. 领域驱动设计DDD之读书笔记

    查看文章   领域驱动设计DDD之读书笔记  转载原地址:http://hi.baidu.com/lijiangzj 2007-08-17 16:53 一.当前Java软件开发中几种认识误区 Hibe ...

  8. JPA实现领域驱动设计(DDD) 中值对象的持久化

    文章目录 什么是DDD值对象? 实现方式 单一值对象 改变表中映射的字段的名称 根据值对象的单一属性查询或多属性的动态查询 多个值对象 根据值对象的单一属性查询或多属性的动态查询 什么是DDD值对象? ...

  9. 领域驱动设计(DDD)-基础思想

    一.序言 领域驱动设计是一种解决业务复杂性的设计思想,不是一种标准规则的解决方法.在领域驱动设计理念上,各路大侠的观点也是各有不同,能力有限.欢迎留言讨论. 二.领域驱动设计 DDD是什么 wiki释 ...

  10. 领域驱动设计 DDD

    一.序言 领域驱动设计是一种解决业务复杂性的设计思想,不是一种标准规则的解决方法.在领域驱动设计理念上,各路大侠的观点也是各有不同,能力有限.欢迎留言讨论. 二.领域驱动设计 DDD是什么 wiki释 ...

最新文章

  1. Apache理论与实战
  2. 线程A向队列Q中不停写入数据,线程B从列队Q中不停读取数据(只要Q中有数据)。
  3. JTStackController
  4. java mysql websocket_javaweb-ajax-websocket-mysql
  5. Bokeh 风格属性设置
  6. tomcat相关问题汇总
  7. 8.Prometheus 监控技术与实践 --- Pushgateway
  8. 阿里巴巴都害怕的区块链电商到底是什么?
  9. android精选源码,erp交互效果摩天轮高仿斗鱼直播View炫酷进度条源码
  10. 商业银行风险计量 第二章 最低资本要求
  11. 智慧公厕擦手纸洗手液余量实时在线统计
  12. 抖音的服务器到底啥配置?
  13. 索氏提取器使用注意_索氏提取法注意事项
  14. 【Android】带你细看Android input系统中ANR的机制
  15. 使用python为Excel插入附件
  16. 微服务实战系列之SpringCloud Alibaba学习(四)
  17. SSH命令行使用方法
  18. indexedDB简易封装
  19. 正点原子mysql_正点原子战舰开发板硬件原理图与PCB
  20. mysql无法启动(centos7):systemctl status mysqld.service:Can‘t create/write to file

热门文章

  1. 组合数有关的一些求和公式
  2. RAC环境的AFD详解
  3. 飞鱼星路由器如何限制外网访问服务器网站,飞鱼星路由器怎么访问指定网站
  4. lvds输入悬空_LVDS技术原理及详细介绍
  5. 程序员52个堪称神器的学习网站,每天坚持一小时,让你受益一生
  6. Python str islower()方法
  7. 计算机软件如何永久删除,如何彻底删除电脑软件
  8. 如何找回mysql删除的表_mysql误删表如何恢复,恢复被删除表的步骤说明
  9. 惊爆:普通人也能监听你MSN聊天(转)
  10. 2021-03-29