• 领域驱动设计(DDD)系列文章前言


    领域驱动设计(DDD Domain-Driven Design)

    国外的研究人员倾向于研究抽象的概念,而国内的程序员往往喜欢迅速实践。然而,任何实践都需要有理论支持,而理论本身也不能脱离实践。只有将理论和实践相结合才能产生出更具价值和合理性的成果。这正如王阳明所说的“知行合一”。通过将理论与实践相融合,我们能够更富有成效和合理的方式进行工作。

    在我上大学的时候,大约六七年前,有人向我推荐了一本书叫做《领域驱动设计:软件核心复杂性应对之道》。当时我只是匆忙翻了一下,感到完全摸不着头脑,只记住了那个名词——领域驱动设计。那时候,开发软件对我来说并没有所谓的设计过程,我一上手就直接开始写代码。之后,随着我积累了一定的开发经验,我渐渐明白了设计的重要性。

    实际上,在工程领域,比如建筑行业,要盖一栋大楼,有具体的规范可以依据。但是,在软件工程这个新兴行业中,并没有非常具体的规范可供参考。

    我认为领域驱动设计和微服务是非常好的结合。当Eric Evans发表了《领域驱动设计:软件核心复杂性应对之道》这本书时,微服务还没有像现在这样流行。然而,他的这本书事实上提前预言了微服务的发展趋势。这意味着,在领域驱动设计的指导下,我们可以更好地理解和应用微服务架构,并将其与领域对象的划分和组织相结合,从而有效地解决软件开发中的复杂性问题。

    我准备写关于领域驱动设计(DDD)的系列文章。当然,为了编写这些文章,我阅读了许多相关书籍,并结合自己的经验总结了一些方法。我还将提供具体的代码实现方法等内容。然而,请注意这些只是我个人的经验和学习记录,并不具有标准和规范的性质。领域驱动设计是一个非常庞大的主题,我只是略懂其中一些内容。

    Evans的领域驱动设计包括战略部分和战术部分:

    战略设计部分包括

    • 限界上下文和通用语言进行
    • 运用子域进行战略设计
    • 上下文映射

    战术设计部分包括

    • 实体、值对象、资源库
    • 架构、模块、聚合
    • 领域事件、REST资源调用

    战略部分主要是理论相关知识,制定战略,而战术部分主要是具体的实现方法,具体如何做实现领域驱动设计。

    我也主要从以上这些内容进行讲述分享。我认为在三五年之后,我可能会有更多有关领域驱动设计的见解与想法。不过,目前我撰写的这一系列与DDD相关的文章,希望能够为一些程序员提供一些启发和帮助,也理清楚自己对于领域驱动设计的一些思考。这就是我写这些文章的初衷。

  • 相关阅读:
    区块链技术的飞跃: 2023年的数字革命
    由于找不到qt5core.dll,无法继续执行代码的问题
    【学习笔记】数据结构算法文档(类C语言)
    mp4压缩视频不改变画质?跟我这样压缩视频大小
    SAP BC 业务修改记录查询 特别是删除对象的查询
    rust中结构体的属性默认是不能修改的,要想修改可以有两种方式
    计算机网络。CIDR子 网掩码相关
    Android13 动态切换默认laucnher
    尚硅谷设计模式学习(八)桥接模式
    我的创作纪念日-毕业后碰到疫情三年的工作、学习和分享总结
  • 原文地址:https://blog.csdn.net/qq_28883885/article/details/133803903