为人父母始知天下事---“宝宝哭了”的问题来说说什么是分析,什么是设计
引子:
今晚跟朋友讨论DDD(领域驱动设计),说到如何分析业务、设计方案的事情,大家对于分析与设计的关系有点搞不清,DDD到底是分析,还是设计,谈了很久的DDD,还是搞不清楚该怎么分析,怎么设计。我觉得在设计之前一定要搞清楚前一个问题,即什么是分析,什么是设计。
“业务分析”之宝宝哭了:
以领域的思维来分析问题,以分析的结果来驱动设计
----这是我理解的DDD(领域驱动设计)。
比如,婴儿哭了,这个是问题,客户拿着这个问题,来请你分析。
角色领域视角分析:
角色 | 领域视角 | 分析 | 设计 |
---|---|---|---|
妈妈 | 育儿领域 |
如果你是有经验的妈妈(育儿领域专家),根据宝宝的哭声洪亮 ,吸吮手指,你的分析是宝宝可能饿了。 |
于是你脑袋里面开始设计:喂奶?喂奶粉?米粉?。。。。 最终,你决定直接母乳。 在你最终采取行动之前的过程,是设计的过程,设计一种喂养方案。 |
爸爸 | 育儿领域 |
如果你是婴儿的爸爸(婴儿问题的另一种领域专家),你开始分析:是不是生气了?没有陪他玩?。。。。
|
于是你开始设计:我该用哪种玩具来哄他玩?小铃铛?风车?变形金刚?。。。。 最后,你拿了一个风车过来。 |
儿科医生 | 医学领域 |
如果你是医生(婴儿问题的另一个领域专家了),你开始分析:这孩子是不是消化不良?或者其它疾病? 先去做个检查 ,根据检查结果再进一步分析确诊。 |
于是你开始设计婴儿的检查方案:查体温、超声波检查、核磁。。。。。 最终你决定,查查体温即可。这就是你对婴儿哭闹问题的设计方案。
|
领域分析的缺陷:
由上面的例子可见,我们对同样一个问题,以不同领域专家的视觉,会得到不同的分析结果。
到底哪种分析是正确的?
这,就是领域事先不能评判的。所以这是领域分析的短板。
但是将问题放到历史的时间轴去观察,我们很快就能够发现哪种领域分析是最可靠的,同时结合场景,就能够做出正确的判断。
场景角色分析法:
比如,在睡觉的场景,婴儿突然哭闹,那找妈妈这个领域专家即可解决,孩子可能做噩梦了,妈妈抱抱即可;
在玩耍场景,婴儿突然哭闹,那找爸爸这个领域专家即可解决。
而结合历史情况,婴儿有爱哭闹的习惯,婴儿身体体质不好....
那么同一个场景下可能又该使用不同的领域视觉去分析解决问题。而从分利用这个分析方式,就能够设计出满意的解决方案:
业务分析三维度理论:
所以,离开场景谈领域,离开时间谈领域,都是不合适的,领域都没有找对,那么分析就算是有道理,但也无助于解决问题。 而具体会采用哪种领域视角,又跟场景中的角色有关。 不同的角色总有不同的领域思维。
因此我们发现,仅仅依靠领域的思维来分析解决问题,有很大的局限性。
所以我们可以总结出,采用 场景+角色+时间 这三个纬度的问题分析方式,才是最合适的方式。
注:本文的图片均来自网络,如果侵权请和我联系。
本文理论属于原创,欢迎转载,转载请注明出处。
相关链接:
春节前最后一篇,CRUD码农专用福利:PDF.NET之SOD Version 5.1.0 开源发布(兼更名)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库