为人父母始知天下事---“宝宝哭了”的问题来说说什么是分析,什么是设计

2018-02-27 15:55:46 浏览数 (2)

引子:

今晚跟朋友讨论DDD(领域驱动设计),说到如何分析业务、设计方案的事情,大家对于分析与设计的关系有点搞不清,DDD到底是分析,还是设计,谈了很久的DDD,还是搞不清楚该怎么分析,怎么设计。我觉得在设计之前一定要搞清楚前一个问题,即什么是分析,什么是设计。

“业务分析”之宝宝哭了:

以领域的思维来分析问题,以分析的结果来驱动设计

----这是我理解的DDD(领域驱动设计)。

比如,婴儿哭了,这个是问题,客户拿着这个问题,来请你分析。

角色领域视角分析:

角色

领域视角

分析

设计

妈妈

育儿领域

如果你是有经验的妈妈(育儿领域专家),根据宝宝的哭声洪亮 ,吸吮手指,你的分析是宝宝可能饿了。

于是你脑袋里面开始设计:喂奶?喂奶粉?米粉?。。。。 最终,你决定直接母乳。 在你最终采取行动之前的过程,是设计的过程,设计一种喂养方案。

爸爸

育儿领域

如果你是婴儿的爸爸(婴儿问题的另一种领域专家),你开始分析:是不是生气了?没有陪他玩?。。。。

于是你开始设计:我该用哪种玩具来哄他玩?小铃铛?风车?变形金刚?。。。。 最后,你拿了一个风车过来。

儿科医生

医学领域

如果你是医生(婴儿问题的另一个领域专家了),你开始分析:这孩子是不是消化不良?或者其它疾病? 先去做个检查 ,根据检查结果再进一步分析确诊。

于是你开始设计婴儿的检查方案:查体温、超声波检查、核磁。。。。。 最终你决定,查查体温即可。这就是你对婴儿哭闹问题的设计方案。

领域分析的缺陷:

由上面的例子可见,我们对同样一个问题,以不同领域专家的视觉,会得到不同的分析结果。

到底哪种分析是正确的?

这,就是领域事先不能评判的。所以这是领域分析的短板。

但是将问题放到历史的时间轴去观察,我们很快就能够发现哪种领域分析是最可靠的,同时结合场景,就能够做出正确的判断。

场景角色分析法:

比如,在睡觉的场景,婴儿突然哭闹,那找妈妈这个领域专家即可解决,孩子可能做噩梦了,妈妈抱抱即可;

在玩耍场景,婴儿突然哭闹,那找爸爸这个领域专家即可解决。

而结合历史情况,婴儿有爱哭闹的习惯,婴儿身体体质不好....

那么同一个场景下可能又该使用不同的领域视觉去分析解决问题。而从分利用这个分析方式,就能够设计出满意的解决方案:

业务分析三维度理论:

所以,离开场景谈领域,离开时间谈领域,都是不合适的,领域都没有找对,那么分析就算是有道理,但也无助于解决问题。 而具体会采用哪种领域视角,又跟场景中的角色有关。 不同的角色总有不同的领域思维。

因此我们发现,仅仅依靠领域的思维来分析解决问题,有很大的局限性。

所以我们可以总结出,采用 场景 角色 时间 这三个纬度的问题分析方式,才是最合适的方式。

这就是《业务分析三维度(场景 角色 时间)理论》

注:本文的图片均来自网络,如果侵权请和我联系。

     本文理论属于原创,欢迎转载,转载请注明出处。

相关链接:

春节前最后一篇,CRUD码农专用福利:PDF.NET之SOD Version 5.1.0 开源发布(兼更名)

0 人点赞