领域驱动(自己理解)

article/2025/8/9 7:28:44

代码层级编写规范

1、什么是领域驱动?

核心是维护一个反应领域概念的模型,然后通过大量模式来指导模型设计与开发。

一般过程:通过产品同学所写出的prd,利用领域模型的概念与业务相结合,完善出xmind,现在包括五层:adapter、domain、app、client、infrastructure,其中最重要的就是我们的domain层,下面我们会一层一层的进行描述与每个层级编写的规范;

2、为什么要使用领域驱动(好处)?

1)方便代码的理解、减少新同学接触这方面业务的时间

领域驱动是根据业务延伸出来的,我们在创建业务的实体时,属性、值对象都是可以一一映射到业务上,这样更能令整个代码层次以业务的方式立体的展示出来,这样也能让新接触的同学通过代码直观的了解业务,修改代码也更简单;

2)对业务的迭代更清晰;

3)领域分层主要是将表现层、业务实现层、底层数据实现层,从上到下都有一个接口可以令下一层实现上一层的接口,这样便于之后的工程拆分,极大的增强了项目的伸缩性和扩展性;

例如:若我们现在的数据实现层是利用mysql实现的,以后我们想换一个工具实现,那么就可以很轻松的办到;

4)结构清晰,业务描述清晰;

3、如何使用(pom.xml引用)?

示例:如果mf-custoemr项目之中我们会用到mf-deliver项目的业务聚合,我们需要将mf-deliver对外提供接口的项目mf-deliver-client引用到我们的app层的pom.xml文件之中;

<dependency>

<groupId>com.mfexpress.rent.deliver</groupId>

<artifactId>mf-deliver-client</artifactId>

</dependency>

为了便于版本的控制,我们需要在我们最外层的pom.xml之中也要进行引用;

<dependency>

<groupId>com.mfexpress.rent.deliver</groupId>

<artifactId>mf-deliver-client</artifactId>

<version></version>

</dependency>

4、分层规范(包括包名、层次之间传递数据格式命名规范):

 

数据基础层 -> 领域层 : DTO

领域层 -> 适配层:VO

5、名词解释

1)实体(Entity):以前实体作为直接反映数据库表结构的对象,但是在DDD之中就不完全是一个概念了;

对于实体Entity,实体核心是用唯一的标识符来定义,而不是通过属性来定义。即使属性完全相同也可能是两个不同的对象。同时实体本身有状态的,实体又演进的生命周期,实体本身会体现出相关的业务行为,业务行为会实体属性或状态造成影响和改变。

例如两个student数据,只要id唯一表示不同,就是两个不同的实体;

2)值对象(Vo):没有唯一标识,生命周期围绕着实体,对实体进行一些属性的延伸,但又不完全属于该实体(自己理解);

示例:例如客户列表之中,除了客户的自身信息名字、电话之类的属性之外,还有发票、认证信息之类的外部属性,那么我们完全可以把发票、认证信息作为一个值对象;

3)聚合根:聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法;

(自己理解)聚合根就是将实体和相应的值对象组装起来的一个类,例如:客户列表的聚合根就是客户的实体信息 + 发票信息 + 认证信息;

4)聚合:(自己理解)就是将同一种聚合根的操作,例如对订单的crud;

6、示例:

分层详情

 

 

 

 


http://chatgpt.dhexx.cn/article/rSQgfAXx.shtml

相关文章

DDD领域驱动设计详解

DDD领域驱动设计详解 1. 领域驱动概述1.1 领域驱动简介1.2 领域驱动优点1.3 领域驱动解决复杂度方式1.4 领域驱动疑问 2. 领域驱动核心知识2.1 领域知识概念2.2 领域战略战术设计 3. 领域驱动战略设计3.1 战略设计概述3.2 领域与子域3.3 限界上下文3.4 领域场景分析3.5 四色建模…

领域驱动介绍

大纲 软件设计发展史什么是领域驱动设计领域驱动设计解决什么问题领域驱动设计包含哪些要素领域驱动设计的架构样例分析 软件设计发展史 单体->前后端->微服务->服务网格 SSH->ssm->spring boot-> SideCar/ Istio 单体 早期功能侧重功能实现 ESB 基于服…

阿里云负载均衡简介和购买使用流程

目录 一&#xff0c;阿里云负载均衡简介 二&#xff0c;阿里云准备工作 三&#xff0c;阿里云负载均衡原理和说明 四&#xff0c;阿里云负载均衡应用场景说明 五&#xff0c;阿里云负载均衡特点和优势 六&#xff0c;阿里云负载均衡应用场景 七&#xff0c;总结 一&…

阿里云负载均衡【SLB】使用实践方案

负载均衡&#xff08;Server Load Balancer&#xff0c;下文简称 SLB&#xff09;的引入&#xff0c;可以降低单台云服务器 ECS&#xff08;下文简称 ECS&#xff09;出现异常时对业务的冲击&#xff0c;提升业务的可用性。同时&#xff0c;结合弹性伸缩服务&#xff0c;通过动…

阿里云负载均衡

1.环境搭建 准备两台ECS 然后在ECS中配置http服务 yum install httpd -y echo "this is wwq2"> /var/www/html/index.html 2.负载均衡 进入负载均衡控制台 创建负载均衡实例 配置监听 并且添加服务器 测试

使用阿里云负载均衡SLB还需要自己配置Nginx吗?

购买阿里云负载均衡SLB后&#xff0c;还需要自己设置Nginx吗&#xff1f;不需要&#xff0c;阿里云负载均衡SLB本身就是流量转发产品&#xff0c;不需要自己配置Nginx进行流量转发。负载均衡SLB将访问流量根据转发策略分发到后端多台云服务器ECS实例上&#xff0c;提高应用可用…

阿里云负载均衡实验

1.创建ECS 2.开放80端口 3.安装httpd起服务 yum install httpd -y echo " web passage.hostname -I" > /var/www/html/index.html //hostname -I 查看IP地址 systemctl start httpd [rootiZbp10x14xc3r5wy59stlkZ ~]# curl localhost web passage.172.18.180.10…

阿里云负载均衡SLB,HTTPS动态网站部署负载均衡,实现高并发流量分发

第一步购买服务器&#xff0c;测的话一般就用按量付费几毛钱一小时 我是用了三台&#xff0c;一台是常用的服务器&#xff0c;两台临时服务器进行部署项目 2&#xff1a;服务器购买完之后&#xff0c;开始安装项目运行环境&#xff0c;我是宝塔一键按键的&#xff0c;PHP7.1。…

阿里云培训-负载均衡(CLB/ALB)

什么是传统型负载均衡CLB 传统型负载均衡CLB&#xff08;Classic Load Balancer&#xff09;是将访问流量根据转发策略分发到后端多台云服务器&#xff08;ECS实例&#xff09;的流量分发控制服务。CLB扩展了应用的服务能力&#xff0c;增强了应用的可用性。 概述 CLB通过设…

阿里云SLB负载均衡

阿里云SLB负载均衡 四层和七层是什么意思调度算法轮询(RR)加权最小连接数(WLC)加权轮询(WRR) 会话保持健康检查 四层和七层是什么意思 四层: 通过IP和端口转发 七层&#xff1a;通过主机名和域名转发 四层就是 TCP 和 UDP;七层就是http和https. 调度算法 轮询(RR) 假定有2台…

阿里云负载均衡理论

目录 负载均衡概念 总结: CLB与ALB 负载均衡包含的模块 使用ECS的优势 负载均衡的使用场景 SLB的优势 SLB提供的功能 SLB的应用场景 负载均衡概念 负载均衡(Server Load Balancer&#xff09;是将访问流量根据转发策略分发到后端多台云服务器&#xff08;ECS实例)的流量…

阿里云cdn以及阿里云负载均衡配置方法

阿里云cdn以及阿里云负载均衡配置方法 1、阿里云CDN1、全站加速1、添加域名2、配置cname3、配置服务器访问4、配置https 2、阿里云负载均衡配置1、创建负载均衡2、将域名解析到负载均衡的ip中3、添加后端服务器4、配置监听规则5、https 1、阿里云CDN 一开始请先注意全站加速和…

阿里云负载均衡配置

目录 1.创建负载均衡实例 2.配置监听 3.添加后端服务 4.绑定域名 记录工作日记&#xff0c;避免忘记&#xff0c;欢迎大家在文章下方和我留言&#xff01; 1.创建负载均衡实例 阿里云工作台->负载均衡->实例管理 2.配置监听 点击对应实例后面的配置监听&#xff0…

【云服务器 ECS 实战】一文掌握负载均衡服务原理及配置方法

一、负载均衡基本原理概述协议/端口轮询策略会话保持 二、云服务器 ECS 负载均衡相关配置协议&监听配置后端服务器配置健康检查配置测试 在上期文章中&#xff0c;介绍了负载均衡的概述及优势&#xff0c;并详细演示了阿里云服务器负载均衡服务的选型与购买配置。本期文章我…

阿里云——负载均衡

一、什么是负载均衡 负载均衡&#xff08;Server Load Balancer&#xff09;是将访问流量根据转发策略分发到后端多台云服务器&#xff08;ECS实例&#xff09;的流量分发控制服务。负载均衡扩展了应用的服务能力&#xff0c;增强了应用的可用性。 概述 负载均衡通过设置虚…

云原生 - 阿里云负载均衡SLB是什么?如何使用?

阿里云负载均衡SLB 是什么&#xff1f;如何使用&#xff1f;当你手里有很多台云服务器之后&#xff0c;需要同时为一个业务提供后台服务&#xff0c;这就涉及到服务器调度的问题。拿电商网站举例子&#xff0c;每年双11、双12活动的时候&#xff0c;各大电商网站流量激增&#…

阿里云负载均衡SLB网络型NLB负载均衡架构性能详解

阿里云网络型负载均衡NLB是阿里云推出的新一代四层负载均衡&#xff0c;支持超高性能和自动弹性能力&#xff0c;单实例可以达到1亿并发连接&#xff0c;帮您轻松应对高并发业务。网络型负载均衡NLB具有超强性能、自动弹性伸缩、高可用、TCPSSL卸载、多场景流量分发和丰富的高级…

阿里云负载均衡的配置和使用场景

解释下什么叫做负载均衡 负载均衡&#xff0c;英文名称为Load Balance&#xff0c;其含义就是指将负载&#xff08;工作任务&#xff09;进行平衡、分摊到多个操作单元上进行运行&#xff0c;例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等&#xff0c;从…

阿里云服务器负载均衡使用

先创建两台同区域的云服务器 任务一&#xff1a;配置后端web服务器&#xff08;ECS服务器&#xff09; 远程登录两台ECS服务器 安装httpd&#xff0c;提供默认主页&#xff0c;启动服务。 [rootiZbp1dtmtmch89a99m4maaZ ~]# yum install httpd -y [rootiZbp1dtmtmch89a99m…

计算机概念总结5-阿里云的了解2-slb

https://help.aliyun.com/document_detail/27539.html?spma2c4g.11186623.6.544.3c3c5779UdHKeO 概述 负载均衡&#xff08;Server Load Balancer&#xff09;是将访问流量根据转发策略分发到后端多台云服务器&#xff08;ECS实例&#xff09;的流量分发控制服务。负载均衡扩展…