• ddd领域模型落地难


    难以理解的概念

    1:DDD 是一个很老的概念,但在我身边的技术圈,这仍然是个常常被提起的词。不过1.1:很多人在谈论这个概念,但很少有人说清楚,并给出详细具体的实践指导

    2:思维的转变

    2.1:DD要求我们根据产品原型建模,识别领域、限界上下文、子域,这些需要时间思考的问题就像一座座大山,让我们望而却步。且由于项目前期看不到DDD带来的高效,反而没那么敏捷了,并且前期的建模还可能要推倒重来,这让更多人一开始就想放弃,而只有随着需求的不断迭代,DDD才会显示出它的优势。

    3:业务划分限界上下文

    3.1:限界上下文是业务概念的边界,是业务问题最小粒度的划分。在OTO探店业务领域中会包含多个限界上下文,我们通过找出这些确定的限界上下文对系统进行解耦,要求每一个限界上下文其内部必须是紧密组织的、职责明确的、具有较高的内聚性

    4: 领域实体模型

    失血模型:模型仅仅包含数据的定义和getter/setter方法,业务逻辑和应用逻辑都放到服务层中。这种类在Java中叫POJO。
    贫血模型:贫血模型中包含了一些业务逻辑,但不包含依赖持久层的业务逻辑。这部分依赖于持久层的业务逻辑将会放到服务层中。
    充血模型:充血模型中包含了所有的业务逻辑,包括依赖于持久层的业务逻辑。
    胀血模型:胀血模型就是把和业务逻辑不想关的其他应用逻辑(如授权、事务等)都放到领域模型中

    5:领域之间通信

    5.1:领域事件-通过kafka等实现

    6:领域事件带来的缺点

    6.1:业务上下游之间,变成了,下游的领域,需要去接受上游的业务事件,并且做各种补偿,稍有问题,会导致整个业务流程中,上下游的数据不一致,这样的解耦方式,并没有给整体的业务系统带来优势,只是把之前上游需要关注的事情转嫁到了下游,并且把整个流程做的复杂。

    7:领域模型的未来

    7.1:需要做到,各个领域之间,区分出来,域对象,域业务功能模型,域功能,三个维度的数据,各个域之间,没有任何交互,也没有事件等通知。(详细了解spider-node)
    7.2:需要引入编排,,编排的域功能形成域的业务功能。这样子来弥补事件驱动,与现在的领域模型实现上带来的缺点,和提高落地性。并且能快速看到效果。(详细了解spider-node)

    spider-node

    spider层面提供解决领域模型的难落地
    添加链接描述

  • 相关阅读:
    爬虫案例:建设库JS逆向
    LeetCode 15. 三数之和(C++)
    CSAPP BOMB LAB part2
    [HDLBits] Exams/ece241 2014 q5a
    传神论文中心|第25期人工智能领域论文推荐
    Java NIO ByteBuffer原理使用图文详解
    ElasticSearch的环境搭建(Ubuntu系统)
    全局事件总线
    嵌入式4-24
    景联文智能标注平台将数据处理效率提升十倍以上!数据精准度最高可达99%
  • 原文地址:https://blog.csdn.net/weixin_35997672/article/details/134476396