首页 > 其他分享 >一种很变态但有效的DDD建模沟通方式

一种很变态但有效的DDD建模沟通方式

时间:2024-08-15 23:05:41浏览次数:10  
标签:拟人化 模型 变态 建模 员工 协作 我们 DDD

本文书接上回《这就是为什么你学不会DDD》,关注公众号(老肖想当外语大佬)获取信息:

  1. 最新文章更新;
  2. DDD框架源码(.NET、Java双平台);
  3. 加群畅聊,建模分析、技术实现交流;
  4. 视频和直播在B站。

 

https://mp.weixin.qq.com/s/TJEtclwcJydiE58pjWpXXw  

背景

前文说到,我们在建模的时候要放下技术层面的心智负担,这是我们自己内在的问题,相对来讲容易克服。但另外一面,我们分析需求、设计模型时候,就会与业务人员、产品经理等角色进行深入沟通互动,这个时候,很难找到一个比较一致的表述方式,以在大家的大脑中展现出比较一致的形象,往往会出现认知偏差,甚至相互得出相反的理解却无法察觉的情况,沟通效率和准确性非常糟糕。 为了解决这个问题,我们发现了一个很容易被接受的“类比”,就是“拟人化模型沟通法”。 PS: 你依然要先忘掉所有的技术知识。  

为什么可以拟人化

我们先来看下面的图,展示了一家公司的组织架构:

 

  如果我们把图中的结构不变,仅仅是把元素的名称进行替换,就能得到一个系统的结构图:

 

  在这里我们得到如下的对应关系

 

  其中公司对应系统,部门对应模块,可以理解为层级或者分组,是比较自然的,接下来我们重点看看员工和模型为什么可以对应。  

“人”与“模型”的共性

  首先我们思考一下,企业中员工之间是怎么协作的,我觉得无外乎下面两种情形:  
  1. 真“手把手”教你做事;
  2. 我做好我的事,然后通知你,你做好你的事;
  类似下图:

 

  如果一个任务需要员工A手把手教员工B做,那是不是意味着下面几个情况:
  1. 员工B无法独立完成该任务;
  2. 员工A对该任务最终负责,或者至少是AB共同负责;
  如果两个员工的协作模式模式2,即“我做好我的事,然后通知你,你做好你的事”,是不是意味着:
  1. 员工A和员工B各自有自己的职责;
  2. 员工A和员工B通过“通知(事件)”来协作;
  基于上述的逻辑,我们是不是可以得出下面的类比:  

 

  基于这样的类比,我们可以得出如下结论:  
  1. 如果一个任务需要模型A直接依赖(调用)模型B,说明它们无法独自完成任务;
  2. 如果模型A和模型B仅通过事件协作,说明它们相互独立,职责边界清晰;
  这个结论情形2是非常合理的,但如果我们遇到的是情形1,一个任务需要模型A和模型B共同的信息协作才能完成,我们一般认为有两个可选方案:
  1. 合并模型A和模型B,把他们看作一个整体,在模型图上的表现,就是他们之间有实线相连,他们是一个聚合整体;
  2. 创建模型C,来负责这个任务的解决,由模型A和模型B通过事件通知的方式把信息告诉模型C;
  最终我们的模型都会是通过事件的方式协作,“人”与“模型”的共性大体如下:  
  1. “人”与“模型”都有自己的职责,负责解决特定的业务问题;
  2. “人”与“模型”都拥有要履行自己职责所需要的信息;
  3. “人”与“模型”都通过事件驱动来协作;
   

拟人化建模沟通法

  基于上面的推导,我们可以把一个个“模型”看作是一个个人的名字,那么在我们沟通时,就会可以用拟人化的方式来表达业务流程,表达模型的职责,表达模型身上需要携带哪些信息,表达命令与事件:  
  1. 当“支付单”支付成功的时候,“订单”得把自己的支付状态设置成已支付;
  2. 当“用户”注册成功的时候,得向“用户积分账户”里发5个积分;
  3. “商品列表”要展示“商品信息”和“销售统计”的综合信息,还得支持各种纬度的搜索,性能还得跟得上;
  通过拟人化的方式,我们可以在业务人员、产品经理、技术人员的大脑中构建比较一致的形象,这些形象对应着“职责”、“能力”和“边界”,从而我们可以在一个频道上推演这些“模型”的定义和分工协作,是否真的可以满足需求,至此,我们的团队获得了一个能力,就是“有效的建模沟通”,借助这个能力,我们就可以实现“需求-模型-代码”三者一致性的前半部分,即“需求-模型”的一致性:  

 

   

后续

后续,我们会就“模型-代码”如何保持一致性展开剖析,敬请期待。   请关注公众号(老肖想当外语大佬)获取最新更新。  

标签:拟人化,模型,变态,建模,员工,协作,我们,DDD
From: https://www.cnblogs.com/xiaoweiyu/p/18361891

相关文章

  • 三维建模软件:地理信息与遥感领域的智慧构建者
    在地理信息与遥感技术的广阔舞台中,建模软件如同一位卓越的建筑师,以数据为砖瓦,智慧为水泥,构建出一个又一个又一个逼真、动态的虚拟世界。本文将深入探究其技术核心、应用实例、未来趋势,揭示建模软件如何在地理信息与遥感技术中塑造未来。 建模软件的技术核心......
  • 序列建模之循环和递归网络 - 双向RNN篇
    序言在序列建模的广阔领域中,循环神经网络(RNN\text{RNN}RNN)以其独特的循环结构,在处理序列数据方面展现出了强大的能力。然而,传统的单向......
  • 多租户、模块化、DDD框架、开箱即用
    .NET8+Blazor多租户、模块化、DDD框架、开箱即用前言基于.NET8的开源项目,主要使用WebAPI+Blazor支持多租户和模块化设计,DDD构建。可以帮助我们轻松地搭建起一个功能完善的Web应用程序。除了帮助你快速构建应用程序之外,项目也可以当做学习资料。我们可以从中了解到多......
  • 【数学建模】介绍论文书写格式
    ......
  • 2024亚太杯数学建模b题基于机器学习回归的洪水预测模型研究
    本届亚太杯中文赛项已经结束,本文分享我的解决思路。摘 要洪水的频率和严重程度与人口增长趋势相近。迅猛的人口增长,扩大耕地,围湖造田,乱砍滥伐等人为破坏不断地改变着地表状态,改变了汇流条件,加剧了洪灾程度。2023年,全球洪水造成了数十亿美元的经济损失。因此构建与研究洪水......
  • 最佳阵容问题(数学建模校赛题目)(附带word文档)
    最佳阵容问题(数学建模校赛题目)(附带word文档)......
  • 三维建模神器:Revit2021怎么下载安装?Revit2021版图文安装教程
    Revit是一款专门为建筑信息模型(BIM)构建的,可以帮助建筑设计师设计、建造和维护质量更好、更高效的建筑,也是现在建筑行业必备的软件之一,现在已经更新了2021的版本,我拿到之后进行了测试,发现还不错,今天我们就来看看Revit2021版本的下载安装方法,详细请看下文图文介绍。软件安装包......
  • 数学建模优化算法——遗传算法
    遗传算法原理具体的原理网上还是比较多,我就不赘述了。这篇文章的主要目的是为了讲述一下自己从B站UP主连大数模上面获得一个遗传算法细致思路。主要会分享给大家这个matlab代码以及每个代码的含义。不过为了便于大家理解我的思路,大致补充一些东西:首先遗传算法是以种群进......
  • 这就是为什么你学不会DDD
    本文书接上回《为了给Javaer落地DDD,我们不得不写开源组件》,欢迎关注公众号(老肖想当外语大佬),获取最新文章更新和DDD框架源码,视频和直播在B站。https://mp.weixin.qq.com/s/Nsc3hwl4u9je7DaXsC05mg  背景我们在《这是DDD建模最难的部分(其实很简单)》一文中介绍了一个关于......
  • 为了给Javaer落地DDD,我们不得不写开源组件
    本文上回书接《这是DDD建模最难的部分(其实很简单)》,欢迎关注我的同名公众号。https://mp.weixin.qq.com/s/HZKMLF0_I10iczzp2mAR-w 故事背景2013年中,我们的Java后端团队为了落地DDD,全面引入了dotnet技术栈,具体过程和成果,可以看我的B站频道《Java8到.NET8,团队升级报告-第......