DDD的模式与实践案例(1)

简介: DDD的模式与实践案例(1)

大家好,我是业务组件部的神帅,很高兴大家来听我的分享。


image.png


下面我将通过6个小节给大家阐述一下本次的分享内容,首先将给大家介绍一下DDD的相关概念和理论,然后通过架构风格来衔接实战内容,好了,话不多说,我们开始。


image.png


为什么要了解DDD,DDD能给我们带来什么样的好处呢,本小节将着重介绍DDD相关的理论内容以及与设计模式的对比。这样可以更好理解DDD,是因为我在学习DDD之前先学了设计模式,是在大学的时候看了一本书叫《设计模式之禅》,今年看了eric的书《领域驱动设计》,发现里面很多模式都可以用设计模式的方式给固化下来,当作一个DDD模式去学习,这样理解起来也简单很多。


image.png


从软件开发角度来讲有11种开发模型,有4种开发模式,其中就有领域驱动设计,也是本次分享要重点介绍的内容。


image.png


很多人都在定义DDD是?或者说DDD不是什么?除了上面的定义问题也有人说DDD是一种建模方法?其实我个人倒觉得DDD是类似于武功心法一样的东西,可以提升开发功力,改变看待需求的角度,不局限于理论和架构。借用万物皆对象的说法,就是万象皆领域。


image.png


大家都知道DDD起源于国外,是一种比较新颖也比较难懂的理论方法。有些大佬对DDD奉为圭臬,有些则嗤之以鼻,


另一些就无所谓,不用DDD解决不了上面的问题吗?确实可以解决,但是依然很复杂,就是需要花费很大精力去解决这些问题。


而DDD要解决的问题就是降低软件复杂度,分离技术和业务需求,进行领域建模沉淀可复用可扩展的业务模型和工程代码。


image.png


先回顾一下设计模式有哪些内容,概括起来就是23+6,23种设计模式加6大原则


image.png



相关文章
|
网络协议 关系型数据库 MySQL
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
|
安全 Java API
Java 17新特性让你的代码起飞!
【10月更文挑战第4天】自Java 8发布以来,Java语言经历了多次重大更新,每一次都引入了令人兴奋的新特性,极大地提升了开发效率和代码质量。本文将带你从Java 8一路走到Java 17,探索那些能让你的代码起飞的关键特性。
439 1
|
算法 C语言
计算机基础(2)——进制与进制转换
进制也就是进位计数制,是人为定义的带进位的计数方法。 对于任何一种进制---X进制,就表示每一位置上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
883 6
计算机基础(2)——进制与进制转换
|
数据采集 测试技术 数据安全/隐私保护
Playwright测试中避免使用no-wait-for-timeout的原因
在Web应用自动化测试中,Playwright作为首选框架,其稳定性至关重要。不当使用`no-wait-for-timeout`会导致测试结果不稳定、不符合真实用户体验且难以调试。推荐采用显式等待策略和合理设置超时时间,结合代理IP技术提高测试成功率和数据多样性。示例代码展示了如何在Playwright中配置代理IP进行数据抓取及分类统计。遵循这些最佳实践可确保测试既可靠又贴近实际用户场景。
881 4
Playwright测试中避免使用no-wait-for-timeout的原因
|
前端开发 JavaScript
纯CSS实现四种方式文本反差色效果
纯CSS实现四种方式文本反差色效果
532 0
纯CSS实现四种方式文本反差色效果
|
存储 SQL Java
Java8 Stream API 详解:流式编程进行数据处理
Java8 Stream API 详解:流式编程进行数据处理
|
数据可视化 算法 Java
生信教程:多序列比对
生信教程:多序列比对
|
XML SQL 算法
【MyBatis-Plus】快速精通Mybatis-plus框架—快速入门(下)
3.常见注解 在刚刚的入门案例中,我们仅仅引入了依赖,继承了BaseMapper就能使用MybatisPlus,非常简单。但是问题来了: MybatisPlus如何知道我们要查询的是哪张表?表中有哪些字段呢?
363 0
|
前端开发 网络安全
使用EVE-NG模拟山石网科防火墙syslog日志接入GrayLog4.1(下)
使用EVE-NG模拟山石网科防火墙syslog日志接入GrayLog4.1(下)
1764 0
使用EVE-NG模拟山石网科防火墙syslog日志接入GrayLog4.1(下)
|
Java Maven Spring
IDEA配置SpringBoot环境,以及一个简单的SpringBoot例子
IDEA配置SpringBoot环境,以及一个简单的SpringBoot例子
2296 0