DDD为何叫好不叫座?兼论DCI与业务分析的方法论

     今天,仔细阅读了园子里面的一个朋友写的《一缕阳光:DDD(领域驱动设计)应对具体业务场景,如何聚焦 Domain Model(领域模型)?》(http://www.cnblogs.com/xishuai/p/3800656.html)这篇博客,觉得这是一篇对DDD的分析总结性质的文章,写得不错,但奇怪的是,居然没有一个人回复,也许是文章太长很少有人赖得着性子看完,但也可能是DDD叫好不叫座的原因,这篇随笔里面也对此进行了分析。不过,我觉得这个问题还有更深层次的原因,今晚跟朋友们探讨了一下,总结后发在这里,希望有更多的朋友能够看到。

    文章中说到了领域模型,还说到了领域服务,这让我觉得DDD这个东西有点鸡肋啊,需要领域服务去做协调 ,由此引入了工作单元、事务这些东西 ,甚至还有工作流 。这说明基于DDD设计出来的领域模型功能很弱 ,DDD这种模型是静态的,所以需要领域服务去处理动态的东西 ,这相当于把事物分成了“动”,“静”两个方面去处理。

    但是“动”,“静”却是相对的,因为,按照牛顿运动定律 ,是没有绝对的静的,运动是永恒的。 所以分析出来的这个 “静 ”,没有太大的意义。 因此,这注定 DDD这种建模方式,结果是鸡肋,根本之道,是掌握事物的“动机”。 DDD推广不起来,除了现实原因,跟它鸡肋这个特点不无关系。

    从事物的动机出发,进行建模,需要DCI这样的东西。 DCI是一种切入方式,顾名思义,DCI的意思是数据在上下文中的交互,所以可以作为事物动机的观察切入方式。这说明 ,DCI提供了一种比较有效的途径,但还是没有触及到根本问题。 不过DCI,相对于DDD,也算是一个很大的进步。但是太超前的东西总是很难让人接受,DDD都是叫好不叫做,DCI,接受起来就更困难了。

    我们顺着 DCI的切入点,深入的观察事物,分析数据的流入流出 ,进行归纳总结,发现某些事物总是有类似的行为。如果我们对这一类事物取一个名字,那么最合适的名字就是 “角色”,所以我们立马发现,这些数据其实就是角色进行交互的产物。 如果我们再深入的分析角色为何会有这些交互,那么我们已经接近前面说的“动机”了。这就是角色的“心智”。所以,也有人说,DCI,其实就是对角色的心智进行建模。

    从角色的动机出发,那么我们就容易明白角色为何具有这些方法了,明白角色之间为何会有这些交互了。 角色进行交互需要一个载体、媒介,这个东西就是场景。角色交互过程的观察维度 ,就是时间 。场景也就是我们说的空间维度,那么我们马上明白,这些事物的产生、发展、变化,其实就是角色在时空中的运动。 而且,这种运动,是永恒不止的。(参照附录牛顿运动定律)

    角色的具体扮演者,可以是人,可以是物,还可以是人类社会。人类社会在时空中的运动轨迹,这就是“历史”。如果说角色也是一个维度,那么我们把时间纬度、场景维度联合起来,这就是一个分析事物的方法论,假如我们用这个方法论来分析业务,那就是 《业务分析三维度(角色+场景+时间)理论》。

    "三维度理论",场景、时间 这些比较容易理解,但是,"角色"这个东西虽然容易理解但要找到这个角色名字并不容易,要担当这个角色更不容易.我想,"角色"的名字,就像《道德经》所说的:道可道,莫可道;名可名,莫可名。这个“名”可以说出来但又难以说清楚,所以我们在对事物进行分析的时候,找到合适的角色,并不是一件容易的事情,而分析出角色的“动机”,也就是“道”,就更难了!

附录:

牛顿第一运动定律:

牛顿第一运动定律(Newton's first law of motion)表明,除非有外力施加,物体的运动速度不会改变。根据这定律,假设没有任何外力施加或所施加的外力之和为零,则运动中物体总保持匀速直线运动状态,静止物体总保持静止状态。物体所显示出的维持运动状态不变的这性质称为惯性。所以,这定律又称为惯性定律。物体的惯性与其质量有关。

为什么说运动是绝对的,静止是相对的?

一个物体的静止是相对于另一个物体的。(也就是所谓的参考系的相对性),牛顿曾说任何物体都是运动的,不存在不运动的东西,从量子力学的的角度也是这么阐释的。 

相对静止:

没有任何方法可以证实一个物体是在绝对静止之中。绝对静止的物体是不存在的。静止只是一个物体对于它周围的另一个参照物保持位置不变,所以也只能是相对运动和相对静止,运动和静止是相对的。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ATYUN订阅号

Kebotix利用机器学习和机器人加速化合物和材料设计

机器人手臂将移液器浸入培养皿中,并将少量明亮的液体转移到位于另一台机器前面的许多容器中。当所有样品都准备好后,第二台机器测试它们的光学特性,并将结果输送到控制臂...

894
来自专栏Android 开发者

一文教你预测 app 未来的变现情况

1512
来自专栏AI研习社

机器人聊天的秘密|硬创公开课

语义理解简单来说,就是让计算机听懂用户说了什么,然后可以进一步回答用户的问题或与用户对话。这类技术在现实场景中的应用有大家比较熟知的微软小冰与百度度秘。锤子手机...

3584
来自专栏人工智能头条

专访CMU邢波教授:机器学习与医疗大数据,及大规模机器学习系统的开发

1746
来自专栏新智元

【吴恩达Quora最新问答】任何人都能成为机器学习专家

【新智元导读】吴恩达刚刚在Quora做了一次最新session,重点回答了如何学习机器学习/深度学习,以及如何从事机器学习方向工作的问题。吴恩达认为,复现他人发...

3606
来自专栏新智元

谷歌:量子计算是深度学习的完美选择么?(12月8日将发布转折消息)

在过去的几年里,谷歌一直在试着提升他人工智能的服务水平。谷歌恰好也有量子计算机——一个能够在某些计算上执行速度比经典计算机快的系统。 认为谷歌会把运行AI的工作...

4278
来自专栏新智元

Facebook AI 背后的神秘组织:FAIR + AML + Product Groups

Yann LeCun 是 Facebook 人工智能实验室负责人,卷积神经网络发明者。面对 Google 的 AlphaGo,他最近谈到了 Faceboo...

4036
来自专栏镁客网

硬纪元AI峰会前瞻:成像技术距离下一次颠覆还有多远?

1705
来自专栏AI科技评论

重磅 | 从SwiftScribe说起,回顾百度在语音技术的七年积累

人与机器的自然交互一直是人类孜孜不倦的奋斗目标。随着移动互联网时代的发展,声音与图片成为了人机交互更为自然的表达方式。作为最核心的入口,语音技术就成为了科技巨头...

38813
来自专栏企鹅号快讯

你了解你的数据吗

0x00 前言 你了解你的数据吗? 前几天突然来了点灵感,想梳理一下自己对数据的理解,因此便有了这篇博客或者说这系列博客来聊聊数据。 数据从业者有很多,比如说数...

22710

扫码关注云+社区

领取腾讯云代金券