DDD概念

作者: Wu杰语 | 来源:发表于2021-03-17 15:03 被阅读0次

    DDD是架构设计的一种方法论,在2004年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》,DDD一直不温不火, 随着微服务的兴起,DDD找到用武之地。

    DDD 核心思想是通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。

    战略设计和战术设计

    微服务时代我也学习过DDD,但是主要关注在战术设计上,即聚合根、实体、值对象、领域对象等,但是学习完成以后感觉比较难用,纠结与概念,不好用,不久就丢弃了。

    微服务后,DDD的理论明确提到战略设计和战术设计,这一切就迎刃而解了。

    • 战略设计,从业务角度出发,建立业务领域模型,划分领域边界,建立通用语言上下文。
    • 战术设计,从技术角度出发,侧重于领域模型的实现,完成软件的开发和落地,包括:聚合根、实体、值对象、领域服务、应用服务和资源库等代码逻辑的设计和实现。

    事件风暴

    • 确定领域模型一般使用事件风暴,首先根据事件风暴梳理业务过程中的用户操作、事件以及外部领域。
    • 根据实体的业务领域关系,将业务领域相关的实体组合成聚合,同时确定聚合根,聚合对象、实体对象。
    • 根据业务以及语义边界因素,将一个或者多个聚合划分在一个界限上下文,形成领域模型。

    DDD和微服务

    DDD是一种架构设计方法,而微服务是架构设计风格,两者从本质上都是为了追求高响应力,而从业务角度去分离应用系统建设复杂度。

    DDD主要关注从业务领域视角划分领域边界,构建通用语言进行高效沟通,通过业务抽象,建立领域模型,维持业务和代码模型的一致性。

    微服务关注服务治理、服务通信、容错、Devops,让开发人员将注意力集中在业务上。

    小结

    这是DDD的一些基本概念,特别是战略设计和战术设计要理解清楚,不要把精力都放在战术设计上,虽然战术设计是和代码一一对应。

    相关文章

      网友评论

          本文标题:DDD概念

          本文链接:https://www.haomeiwen.com/subject/ubidcltx.html