架构师篇-21、工作坊实战DDD分解业务

2024-08-26 10:52

本文主要是介绍架构师篇-21、工作坊实战DDD分解业务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

课程内容:

  • 采用工作坊的教学模式
  • 共创主题一:DDD业务分析步骤
  • 共创主题二:DDD领域模型输出
  • 共创主题三:业务架构蓝图输出

收益:

  • 如何采用DDD进行业务分解?【循序渐进不断实践】
  • 共创输出项目业务架构图及业务分析

知识复习

事件风暴

在这里插入图片描述

事件风暴会议

在这里插入图片描述

在线订餐系统的事件风暴【样例】

在这里插入图片描述

问题域、子域与限界上下文【样例】

在这里插入图片描述
在这里插入图片描述

在线订餐系统的领域事件【样例】

在这里插入图片描述

微服务拆分【样例】

在这里插入图片描述

领域模型【样例】

在这里插入图片描述

领域分析与领域模型【样例】

在这里插入图片描述

原文分析法【样例】

在这里插入图片描述

分析结果【样例】

在这里插入图片描述

原文分析法【样例】

在这里插入图片描述

四色建模【样例】

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

限界上下文的设计原则

在这里插入图片描述

研发框架之分层结构 – 实体

代码案例摘自:
https://github.com/dayatang/dddlib
https://github.com/dayatang/hrm-demo
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

研发框架之分层结构 – 值对象

在这里插入图片描述
在这里插入图片描述

研发框架之分层结构 – 仓储

在这里插入图片描述
在这里插入图片描述
具体实现则由EntityRepositoryHibernate Implements EntityRepository

研发框架之分层结构 – 工厂

在这里插入图片描述
Spring的工厂实现
在这里插入图片描述
谷歌的guice的工厂实现
在这里插入图片描述
当并发量高了之后,修改只是技术层面的东西,业务领域是不会发生变化的。

研发框架之分层结构 – 领域事件

在这里插入图片描述
在这里插入图片描述

研发框架之分层结构 – 实体抽象与继承

在这里插入图片描述

研发框架之分层结构 – 业务实体

在这里插入图片描述

研发框架之分层结构 – 实例与值对象、属性、行为定义

在这里插入图片描述
熟悉了注解后,后续的组织形式就会比较清晰。

研发框架之分层结构 – 通用查询实现

CQRS
在这里插入图片描述

上节回顾

关键点需要聚焦
在这里插入图片描述

共创

  • 共创主题一:DDD业务分析步骤

  • 共创主题二:DDD领域模型输出

  • 共创主题三:业务架构蓝图输出

  • 确定业务架构设计主要内容

    • 组织结构 业务功能 商业模式 业务流程 业务数据
  • 采用DDD分解业务

    • 事件风暴【产品愿景分析、场景分析、领域建模】
    • 限界上下文【定义领域边界的利器】
    • 领域&子域【有效分解问题域】
    • 领域模型【实体和值对象】

共创主题 - DDD分解业务 - 业务架构设计

  • 先定义事件风暴的一些组件在这里插入图片描述
  • 列出业务功能
    • 个人思考:下单事件、履约事件、配送事件、退款事件…
    • 课上讨论:在这里插入图片描述
      • 用户下单(事件)、下单(命令)、已下单(领域事件)、订单+菜品明细(对象,聚合关系)
      • 通过三个视角梳理业务:商家体系管理【商品管理、商家入驻…】、用户体系管理【】、平台体系管理【】
        • 商家:商家注册-》商家审核-》…在这里插入图片描述

这篇关于架构师篇-21、工作坊实战DDD分解业务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108358

相关文章

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程

《在Java中使用ModelMapper简化Shapefile属性转JavaBean实战过程》本文介绍了在Java中使用ModelMapper库简化Shapefile属性转JavaBean的过程,对比... 目录前言一、原始的处理办法1、使用Set方法来转换2、使用构造方法转换二、基于ModelMapper

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

C语言小项目实战之通讯录功能

《C语言小项目实战之通讯录功能》:本文主要介绍如何设计和实现一个简单的通讯录管理系统,包括联系人信息的存储、增加、删除、查找、修改和排序等功能,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录功能介绍:添加联系人模块显示联系人模块删除联系人模块查找联系人模块修改联系人模块排序联系人模块源代码如下

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

Golang使用minio替代文件系统的实战教程

《Golang使用minio替代文件系统的实战教程》本文讨论项目开发中直接文件系统的限制或不足,接着介绍Minio对象存储的优势,同时给出Golang的实际示例代码,包括初始化客户端、读取minio对... 目录文件系统 vs Minio文件系统不足:对象存储:miniogolang连接Minio配置Min

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库