首页 > 其他分享 >我对DDD领域驱动设计的理解

我对DDD领域驱动设计的理解

时间:2022-08-19 19:14:01浏览次数:53  
标签:领域 理解 界限 设计 驱动 上下文 DDD

本片随笔仅记录自己目前对DDD的理解与实践,后续会持续关注DDD,持续更新

1. DDD是什么

DDD是领域驱动设计的简称,那什么是领域呢,领域就是业务,比如,制药领域,金融领域,电商领域等等,各个领域有各个规则,复杂的规则如何应对呢,想到一个关键字那就是分治思想。领域再大都可以拆分成小子域,如同递归思想,单独求解汇总解决复杂问题

2. 怎么拆?战略设计和战术设计

2.1 战略设计

可以理解为上帝视角看待软件系统,划分出核心域,支撑域,定义一些通用的语言

召集产品,开发人员,测试人员,领域专家,进行开会,用例分析,用户实际故事,讨论总结提炼出领域的知识,简历实体模型,达成描述一致性,包括功能,目标,范围等等

举例:如跨境汇款领域
子域和统一语言:订单,付款,兑换,交割,汇率,货币对,国家,交割,充值,等等。
如核心域的汇款,支撑汇款的有付款,兑换,交割

界限上下文
如汇率和兑换的界限,汇率与渠道方的界限,区分出这些界限

上下文映射
合作关系,共享实体,下游客户依赖上游供应方,各行其道,上下文的防腐层也很关键

分层架构
API:为用户服务
APP:编排组织领域模型,互相协作
Domain:表达业务概念,状态,规则
Infrastructure:持久化,文件读写,调用邮件等

2.2 战术设计

侧重于如何设计编码并实现项目目标

实践中的问题

  1. 由于后续需求过多,新加入的开发人员对DDD理解不够深刻,看到很多术语和概念,即可打退堂鼓,导致很多后加的需求功能并非完全DDD,
  2. DDD在建模要花费大量人员的时间经历,付出与收益不成正比,后续迭代的功能慢慢腐败了。

标签:领域,理解,界限,设计,驱动,上下文,DDD
From: https://www.cnblogs.com/aleiyoy/p/16602982.html

相关文章

  • LCD液晶显示驱动器/液晶段码屏驱动芯片VK1623/VK0384更少脚位
     产品品牌:永嘉微电/VINKA产品型号:VK1623封装形式:LQFP100/QFP10产品年份:新年份原厂直销,样品免费,技术支持,价格优势。 概述:VK1623S是一个点阵式存储映射的LCD驱动器,可......
  • Eureka 理解
    生活中的例子:就好比网约车出现以前,人们出门叫车只能叫出租车。一些私家车想做出租却没有资格,被称为黑车。而很多人想要约车,但是无奈出租车太少不方便。私家车很多却不敢拦......
  • 通过一个具体的例子理解 npm 的 peerDependency
    假设我们有两个npmmoduleA和B,A是B的plugin.如果ABAP的package.json里将B定义成其dependency:{"dependencies":{"B":"1.2.0"}}那么我们......
  • 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
    驱动程序无法通过使用安全套接字层(SSL)加密与SQLServer建立安全连接,Error:“TheserverselectedprotocolversionTLS10isnotacceptedbyclientpreferences[......
  • 深入理解Redis 数据结构—字典
    字典,又称为符号表、关联数组或映射,是一种用于保存键值对的抽象数据结构。在字典中,一个键可以和一个值进行关联,这些关联的键和值称为键值对。键值对中键是唯一的,我们可以......
  • Linux驱动开发十三.platform设备驱动——2.无设备树的platform驱动
    在上面一章我们借助Linux驱动分离和分层的概念引出来驱动——总线——设备的概念,然后引出来了platform这种基于设备驱动模型的驱动架构,我们下面通过使用来演示下platform架......
  • 2020-阅读理解-Text 1
    Text1AgroupofLabourMPs,amongthemYvetteCooper,arebringinginthenewyearwithacalltoinstituteaUK“townofculture”award.Theproposalisth......
  • 透过inode来理解硬链接和软链接
    什么是inode?每个文件都对应一个唯一的inode,inode用来存储文件的元信息,包括:对应的文件文件字节数文件数据块的位置文件的inode号码文件的硬链接数文件的读写权限文......
  • REST的理解.md
    REST名称REST--REpresentationalStateTransfer全称是ResourceRepresentationalStateTransfer,第一个单词被省略了。通俗来讲就是:资源在网络中以某种表现形式进行......
  • P1507 洛谷 理解与分析
    题目大意食品的体积就是01背包问题中的体积也就是w数组食品的所含卡路里就是01背包问题中的价值也就是v数组所以这就是一道01背包问题的模板题题目分析使......