DDD落地实践复盘 - 记理论培训事件风暴

news2025/2/4 22:05:56

DDD毕竟是一个指导方法,想落地扎根还是需要很多尝试的,笔者整理了一下在部门内践行推广之初的复盘小结,这可能是多数团队在推广DDD时都会遇到的问题,希望能对大家有所帮助。

DDD在部门进行两次尝试,一次是PPT培训,另外一次是一个新系统领域分析的事件风暴。现把两次尝试的过程做一个小结,内容仅供参考,大家共同讨论分享。下面分别从目的、过程、总结反思几个方面描述下这两次实践过程。实践一:DDD初探培训

实践一:DDD初探

1.1、目的

有幸做了一次部门内分享,笔者也是初次系统的学习DDD,学习之余感受到DDD对初学者并不友好,主要是:1、框架内容过多,很多概念过于晦涩难懂;2、有一定的门槛,对学习者要求有一定的经验要求;3、落地过程要求适应土壤。。。。。。

DDD的灵魂就是ublqutius language(通用语言),但DDD本身就是一种ublqutius language,这就要求践行者本身首先要会DDD这种模式语言,才能更好的应用这种模式。后续的一系列事件确实验证了这一点。

在全员DDD的部门背景下,基于以上感受,所以在部门特意组织了一次名为《DDD初探》的培训,面向部门全体RD和QA同学,目的是让大家对DDD框架内容、核心概念有个统一的理解,最后辅之两个实例简单佐证下DDD是可以指导开发的。

1.2、过程

整个PPT分为15页,共分为6个小章节,时间控制在了40分钟,会后进行了15分钟左右讨论。由于偏概念,所以在开始概念之前都会以一个story的方式带入正文,简述如下(出于保密原因原始培训资料就不要此处公开了,有兴趣的同学可以私信笔者):

1.3、后续问卷与总结

本次另一个目的就是问路,所以发起了一次问卷和部分同学的f2f沟通,从反馈问题情况来看主要有这么几点:

  • DDD是有用的;
  • 内容过多,抓不到重点,一时很难或不能全面理解;
  • 学习了还是不知道如何实践到项目编码中;

面对面沟通的结论也挺有意思的,系统学习了的同学更关注如何落地,急于找到一种方法来实践,未系统学习的同学普遍关心能不能落地,持怀疑态度;区别非常明显。下面是部分问卷反馈内容: 

1.4、总结

      本次培训,做为DDD实践的问路石,最主要的是佐验了,如果想推广践行,需要所有人员系统性的学习,因为DDD本身就是一门语言,在践行前,必须统一DDD这门ublqutius language,这是最基本的要求。所以后续会在学习和培训人员的指定上想一些对策。

实践二:事件风暴

2.1、目的

背景是一个真实的需求(PRD评审完,系统设计阶段),而且是一个新系统。我们认为新系统可能更容易实践,至于事件风暴的目的就不在描述了。

2.2、过程

参与人,业务、产品、技术、测试,过程简述如下:

最后事件等细分后,就比较贴合实际了,大概是这个样子:

2.3、总结

    整体效果还是不错的,好的地方不说了,主要说下不太理想的地方吧:

  • 还是要求参与人员必须对DDD要系统学习,不然效果会打折扣;
  • 在开始实施时可以严格按规则玩,玩透了再改进,比如上图中第一排第二块就存在一些问题;
  • 事件风暴引入的时机,brd, prd, 还是设计阶段?
  • 会议涉及的人数过多,不同层次或角色人员的关注点不一样,时间上也是个问题;

三、总结 

个人的一个观点,DDD实践是一个工程问题,践行时也是一个过程,在过程中只开一两次对齐会议是解决不了领域建模问题的。如果从利他角度来讲,在这个过程中的不同阶段每个人都可以受益,但不是同时受益,有可能要先解决哪部分人先受益的问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/761758.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 三)

页面和自定义组件生命周期 在开始之前,先明确自定义组件和页面的关系: 自定义组件:Component装饰的UI单元,可以组合多个系统组件实现UI的复用。页面:即应用的UI页面。可以由一个或者多个自定义组件组成,E…

springMVC(四)—— 简化配置之不用再写@Repository类

这种简化配置的方法在下面这篇博客中已经用到了,但是因为太重要了,所以把他单独拿出来讲。 springMVC(三)—— 整合SSM框架_玛丽莲茼蒿的博客-CSDN博客IDEAtomcat 8。https://blog.csdn.net/qq_44886213/article/details/1316570…

【六袆 - Java】Kafka的由来,Kafka创始人,Kafka企业级应用开发;Kafka是一种分布式流处理平台和消息队列系统;

kafka是一门什么技术? Kafka是一种分布式流处理平台和消息队列系统,用于解决高吞吐量、低延迟的数据处理和消息传递问题。它最初由LinkedIn开发,旨在应对LinkedIn在大规模社交网络中处理实时数据流的需求。 它的由来 Kafka的历史可以追溯到…

git学习笔记 |常用命令

文章目录 Git学习笔记是什么?Git的工作机制Git和代码托管中心 Git的常用命令设置签名本地库初始化 git init添加到暂存区 git add将暂存区的文件提交到本地库 git commit查看历史版本 git log/git reflog版本穿梭 git reset Git的分支分支命令合并分支时代码冲突删除…

GBT51277-2018矿山立井冻结法施工及质量验收标准

为规范矿山立井冻结法施工及质量验收保障施T安全确保施工质量,制订本标准。 本标准适用于冰点高于一2C地下水流速小于5m/d、地温低于35C、冲积层厚度小于700m、冻结深度小于950m的立井井筒冻结法施T及质量验收。 立井冻结法施T工程承包合同和技术文件对施工质量要求不应低于本…

Android 自定义按键添加流程

和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、驱动通过GPIO连接的按键二、Framework 层添加按键响应方法三、参考文献 一、驱动通过GPIO连接的按键 此类按键采用GPIO来连接,通过监测…

变压器试验介质损耗

试验目的 介质损耗因数 tanδ (% ) 是判断变压器绝缘状态的一种较有效的手段, 主要用来检 查变压器整体受潮、 油质劣化及严重的局部缺陷等, 但不一定能发现变压器局部受潮 等集中性局部缺陷。 试验设备 异频介质损耗测试仪 厂家: 湖北众拓高试 试验接线 (1) 介…

MacBook M1 VulnHub靶机搭建(arm Mac搭建x86 ova镜像)

个人博客: xzajyjs.cn 自从换了M1系的arm Mac后,原本的Vulnhub上的几乎所有靶场按照之前的方法都无法正常搭建了(VirtualBox),在外网论坛上找了一遍,有一个相对麻烦一些的替代方法,但效果还是不错的&#x…

MFC演示双缓冲绘图算法

VC6新建一个单文档工程; 先添加一个小球类; 头文件和cpp文件如下; #if !defined(AFX_SPHERE_H__835B2B85_5B12_4409_AEC0_9C5062625DDE__INCLUDED_) #define AFX_SPHERE_H__835B2B85_5B12_4409_AEC0_9C5062625DDE__INCLUDED_#if _MSC_VER &…

MySQL-DQL-基本查询

数据库操作DQL语句 DQL DQL英文全称Data Query Language(数据查询语言),用来查询数据库表中的记录关键词:SELECT语法 基本查询条件查询(where)分组查询(group by)排序查询&#xff0…

智能办公解决方案——电子标签

智能电子办公标签概要: 电子会议桌牌它外形美观大方,完全取代了传统塑料、纸质或铜制桌牌,是会议桌面显示设备的一大创新,与传统桌牌相比,具有信息化程度高、可反复使用的特点,是现代信息化会议的理想工具…

小物体检测、分割论文

文章目录 2023CaraNet: Context Axial Reverse Attention Network for Segmentation of Small Medical Objects 2023 CaraNet: Context Axial Reverse Attention Network for Segmentation of Small Medical Objects 摘要: 目的:准确、可靠地分割医学图…

Ubuntu 考虑采用新的 “统一默认安装 (unified default install)”

导读Ubuntu安装程序中的 “最小化安装” (Minimal installation) 是该发行版多年来最受欢迎的功能之一。 当用户选择 Ubuntu 的 “最小化安装” 选项时,可以在安装更少的预装应用程序情况下,获得完整、功能齐全的 Ubuntu 系统。 但这个功能可能要被砍掉…

【CSDN新星计划】初阶牛C/C++赛道——顺序程序设计(C语句②)

目录 3.2 最基本的语句——赋值语句 3.2 最基本的语句——赋值语句 在C程序中最常用的语句是:赋值语句和输入输出语句。其中最基本的是赋值语句程序中的计算功能大部分是由赋值语句实现的,几乎每一个有实用价值的程序都包括赋值语句。有的程序中的大部分语句都是赋值语句。先介…

进程间通信之命名管道

进程间通信之命名管道 命名管道1.命名管道概念2.创建一个命名管道2.1用命名管道实现通信2.2用命名管道实现server&client通信 命名管道 1.命名管道概念 管道应用的一个限制就是只能在具有共同祖先(具有亲缘关系)的进程间通信,这种通信可…

高并发的哲学原理(十)-- 理论无限容量:站在地球表面

前面两篇文章每一篇都花了我五十个小时以上,写的我是欲仙欲死,本文我们来务点虚,上上价值。 我们将从微服务架构讲起,一步一步追根溯源,找寻“分布式数据库”在另一个维度的投影,探寻基建、应用、服务、组织…

Java:运算符、位运算 的运算规则与用法详解

目录 运算符Math数学函数与常量类型转换强制类型转换自增和自减运算符关系运算符三元运算符 位运算& 与| 或^ 异或~ 按位取反<< >> 左移 右移运算符优先级 运算符 Math数学函数与常量 import java.lang.Math.*; public class Test{public static void main(S…

java项目之智能仓储系统(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的智能仓储系统。技术交流和部署相关看文章末尾&#xff01; 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&…

十八、网页端在移动端的像素

一、简介 -1. 在不同的屏幕&#xff0c;单位像素的大小是不同的&#xff0c;像素越小&#xff0c;屏幕越清晰。 手机端的像素就是宽度和高度&#xff0c;如iphone6 4.7寸 750 x 1334。 -2. 手机的像素点 远远小于 计算机的像素点。 问题&#xff1a;一个宽度为900px的网页在i…

探索AI图像安全,助力可信AI发展

探索AI图像安全&#xff0c;助力可信AI发展 0. 前言1. 人工智能发展与安全挑战1.1 人工智能及其发展1.2 人工智能安全挑战 2. WAIC 2023 多模态基础大模型的可信 AI2.1 WAIC 2023 专题论坛2.2 走进合合信息 3. AI 图像安全3.1 图像篡改检测3.2 生成式图像鉴别3.3 OCR 对抗攻击技…