当前位置: 首页 > news >正文

十分钟聊明白DDD领域驱动设计

文章目录

  • 一、什么是领域?
  • 二、领域如何驱动设计?
  • 三、如何发挥DDD的价值
  • 最后

十分钟聊明白DDD领域驱动设计

-- 楼兰

​ 关于DDD,大部分朋友应该都听说过。 全称Domain Driven Design,翻译过来就是领域驱动设计。这个神秘的架构思想,虽然远没有SpringBoot这类框架这么名声在外,但是却经常时不时冒出来,牵动一下大家的神经。美团、阿里每年的技术年会都会有关于DDD的经验分享,而另一方面,又有移动、电信等公司爆出DDD从入门到放弃的失败案例。

​ 那么到底什么是领域驱动设计呢?是不是用上了DDD的所谓四层架构,就是在用DDD了?其实DDD这东西看起来挺抽象,但是核心就是需要搞明白三个问题。

  • 到底什么是领域? DDD如此强调领域的重要性,但领域到底长什么样子呢?他应该要怎么落地呢?
  • 领域如何来驱动设计? 为什么DDD只是用来驱动设计,而不像SpringBoot那样直接做出一种框架实现呢?
  • 怎么用好DDD,或者说我们怎么来衡量DDD的价值? 一旦一个技术有价值,那么在行业内学起来用起来一定不难。就像Spring和SpringBoot,你别管他多复杂,里面有多少垃圾代码。但是他就是有用,所以毋庸置疑,你就能学好,企业也就能用好。

​ 对于DDD这么一种抽象的架构思想,其实如果把这三个核心问题想明白了,那么我觉得这个DDD,就通了一大半了。


一、什么是领域?


​ 这可以说是DDD最为核心的一个问题了。到底什么是领域呢?

​ 领域这个词看起来挺抽象的,但其实我们也在天天说领域。我们会说Java是一个领域,软件是一个领域,有时候也会说技术本身就是一个领域。每个领域都有他的领域知识以及对应的能力要求。

​ 但是到底什么是领域呢?其实,领域的核心是另一个很好理解的词:边界

在这里插入图片描述

​ 大家想一想,当我们说Java是一个领域的时候,是不是在强调Java和C、C++、Python等这些语言之间有一个明显的逻辑边界?当我们说软件是一个领域的时候,是不是在强调软件技术和硬件技术之间有一个明显的逻辑边界?当我们说技术是一个领域的时候,是不是在强调技术和运维、测试、项目管理等等这些工作之间有一个明显的逻辑边界?

​ 所以领域的本质其实就是边界。只要你形成了比较明显的逻辑边界,那么不管形式是什么,我们都可以形成一些领域。DDD中,其实强调的领域也就是这么一种形式。

​ 不过,这和我们做开发有什么关系呢?

​ 以我们现在习惯了的MVC开发方式为例,我们也会去做很多边界的划分。以一个电商项目为例,在设计一个电商项目的后端实现时,我们也会设计一些不同的Controller接口,负责不同的业务。比如用一个UserController来承接用户相关的业务逻辑。包括用户登录、注册、修改密码等等这些功能。同时也会用一个OrderController来承接订单这部分的业务,比如下订单、取消订单、订单退款等等这些操作。其实这时候你看,UserConntroller和OrderController之间,是不是就形成了一个井水不犯河水的逻辑边界?

在这里插入图片描述

​ 别管形式是什么&#x

相关文章:

  • 安装完dockers后就无法联网了,执行sudo nmcli con up Company-WiFi,一直在加载中
  • java基础-异常
  • CompleteableFuture的异步任务编排
  • MySQL的安装及相关操作
  • MySQL 自启动时报错can‘t create PID file: No such file or directory
  • 基于天猫 API 的高效商品详情页实时数据接入方法解析
  • 麒麟系统编译osg —— 扩展篇
  • 系统架构设计(十六):敏感点、权衡点、风险点和非风险点
  • EtherCAT通信协议
  • 题解:AT_abc244_e [ABC244E] King Bombee
  • vue+three.js 五彩烟花效果封装+加载字体
  • Go语言实战:使用 excelize 实现多层复杂Excel表头导出教程
  • idea 插件开发自动发布到 nexus 私服中(脚本实例)
  • 随记1-LLM多轮对话的陷阱
  • LTX-Videov本地部署教程:时空扩散+多尺度渲染,重塑AI视频研究范式
  • 至此(day1-day4)代码详解(ai辅助整理)
  • Python代码加密与发布方案详解
  • 计算机图形学Games101笔记--几何
  • leetcode字符串篇【公共前缀】:14-最长公共前缀
  • NebulaGraph学习笔记-SessionPool之Session not existed
  • 购房成本再降低!今年首次降息落地,30年期百万房贷月供将减少54元
  • 一座与人才共成长的理想之城,浙江嘉兴为何如此吸引人?
  • 人民日报任平:从“地瓜经济”理论到民营经济促进法,读懂中国经济的成长壮大之道
  • 多家国有大行存款利率即将迎来新一轮下调
  • 花旗回应减员传闻:持续评估人力资源战略,将为受影响的个人提供支持
  • 自媒体假扮官方蹭反间谍热度攫取利益,国安机关提醒