zoukankan      html  css  js  c++  java
  • 为人父母始知天下事---“宝宝哭了”的问题来说说什么是分析,什么是设计

    引子:

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

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

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

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

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

    角色领域视角分析:

      

    角色领域视角分析设计
    妈妈 育儿领域

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

     

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

    爸爸 育儿领域

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

     

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

    儿科医生 医学领域

    如果你是医生(婴儿问题的另一个领域专家了),你开始分析:这孩子是不是消化不良?或者其它疾病?

    先去做个检查 ,根据检查结果再进一步分析确诊。 

     

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

    领域分析的缺陷:

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

    到底哪种分析是正确的?

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

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

    场景角色分析法:

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

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

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

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

    业务分析三维度理论:

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

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

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

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

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

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

    相关链接:

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

  • 相关阅读:
    MFC 中 Tooltip 实现的几种方式
    C++11带来的优雅语法
    socket异步编程--libevent的使用
    单元测试与解耦
    Ubuntu(Linux) + mono + jexus +asp.net MVC3
    常见算法总结
    NET里简易实现AOP
    KMP算法
    简易的集群通讯组件
    数据访问层的封装与抽象
  • 原文地址:https://www.cnblogs.com/bluedoctor/p/3560199.html
Copyright © 2011-2022 走看看