领域驱动模型设计与微服务架构落地(一)

2024-08-25 16:36

本文主要是介绍领域驱动模型设计与微服务架构落地(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.架构概述

       引语:在我多年的职业生涯中,我发现就算是互联网公司,大部分部门也是由业务驱动,业务决定了我 们的技术选型以及代码边界。也就是说我们并不是一定需要对于所谓的架构标准进行墨守成规。并且市 面上大多数项目并不能直接体现出架构专业度以及架构特性。不过领域驱动设计又是我们互联网大厂必 问的这样一个问题。所以我希望能够将领域驱动设计结合业务场景进行解析。这里补充说明一句, DDD(领域驱动设计)实际上是一套软件架构设计的方法论,我们可以在此之上更好的理解业务。并且 我们可以根据这套方法论进行架构风格填充,包括微服务架构,面向服务架构,REST 风格架构以及六边形架构等等。并且我们还能够将上述的架构风格进行结合使用。架构风格本质上就是一组架构约束。也 就是说他其实就是规则。
       领域驱动本身不涉及任何的技术栈,很多同学很喜欢聊微服务,那是因为微服务本身就有实现以及 落地,但是领域驱动这么多年以来,其实并没有一个实现以及落地。
其实来领域驱动设计 DDD 的各位同学,其实你们也应该发现了,当你们浅浅的去看领域驱动设计的 时候,你会感觉领域驱动设计好像非常契合我们的业务场景,并且感觉非常的规范,但是我不得不 说这是你们的错觉。每一个程序员刚接触到DDD 的时候都是这个感觉。
你的业务经验越丰 富,实际上你的理解越深入 领域驱动设计并没有一个完整的规范或者说约束,现今市面上你所看到的所有资料都是基于(Eric Evans)埃里克 · 埃文斯的《领域驱动设计 - 软件核心复杂性应对之道》这本书进行衍生,本课程是我
对于领域驱动设计的理解。所以不要拿这里的概念与市面上一些概念进行对比。

2.领域驱动模型不得不说的秘密

2.1 业务决定技术边界,业务边界定义领域模型

2.1.1 什么是领域驱动设计
什么是领域驱动设计
       实际上领域驱动设计的英文是 Domain-Driven Design[d ɪˈ za ɪ n].
为什么会出现一个这样的概念呢?这是由于软件其实对于行业并没有什么非常高的要求,因为软件本身 就是为了能够帮助某一些业务进行更好的发展。软件本身其实是赋能以及变革。软件具有行业兼容性, 同时又带来固有的复杂性。
比如医疗行业跟金融行业,都能够去使用软件进行业务开发,但是他们的业务完全不一样,这个时
候我们就需要进行大量的业务梳理,甚至需要专门的岗位(产品经理)去完成这个工作。而完成这
项工作之后,我们才会进行软件的设计层面,在软件设计的时候,由于信息层层传递,就有可能会
导致信息的失真以及遗失,从而导致产品预期以及产品落地会产生较大的差异性。

这篇关于领域驱动模型设计与微服务架构落地(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1106071

相关文章

Python实现快速扫描目标主机的开放端口和服务

《Python实现快速扫描目标主机的开放端口和服务》这篇文章主要为大家详细介绍了如何使用Python编写一个功能强大的端口扫描器脚本,实现快速扫描目标主机的开放端口和服务,感兴趣的小伙伴可以了解下... 目录功能介绍场景应用1. 网络安全审计2. 系统管理维护3. 网络故障排查4. 合规性检查报错处理1.

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

nacos服务无法注册到nacos服务中心问题及解决

《nacos服务无法注册到nacos服务中心问题及解决》本文详细描述了在Linux服务器上使用Tomcat启动Java程序时,服务无法注册到Nacos的排查过程,通过一系列排查步骤,发现问题出在Tom... 目录简介依赖异常情况排查断点调试原因解决NacosRegisterOnWar结果总结简介1、程序在

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

MySQL集群高可用架构的两种使用小结

《MySQL集群高可用架构的两种使用小结》本文介绍了MySQL的两种高可用解决方案:组复制(MGR)和MasterHighAvailability(MHA),文中通过示例代码介绍的非常详细,对大家的学... 目录一、mysql高可用之组复制(MGR)1.1 组复制核心特性与优势1.2 组复制架构原理1.3

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1