架构师篇-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

相关文章

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Oracle Scheduler任务故障诊断方法实战指南

《OracleScheduler任务故障诊断方法实战指南》Oracle数据库作为企业级应用中最常用的关系型数据库管理系统之一,偶尔会遇到各种故障和问题,:本文主要介绍OracleSchedul... 目录前言一、故障场景:当定时任务突然“消失”二、基础环境诊断:搭建“全局视角”1. 数据库实例与PDB状态2

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶