IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 初试DDD领域驱动模型 基础点总结 -> 正文阅读

[大数据]初试DDD领域驱动模型 基础点总结

DDD初探

领域模型早期就是数据库设计

DDD是一种处理高度复杂领域的思想

分离技术实现的复杂性

DDD不是架构,是架构设计方法论

DDD通过边界划分,复杂的业务领域简单化,帮助设计出清晰的领域和应用边界

软件的架构模式:单机,集中式(面向对象),分布式微服务架构

DDD包含战略设计和战术设计

宏观:战略设计 业务战略上的重点,从业务角度触发,建立业务领域模型,花饭领路边界,建立通用语言的限界上下文

战术设计:技术角度触发,侧重领域模型的技术实现,完成开发和落地

学习DDD:

一套完整的项目系统的设计方法

有助于提高架构设计能力--->领域专家-->架构师

领域并不是纯业务

领域,子域,核心域,通用域,支撑域

领域:指特定的范围(边界)或区域→细分→领域模型→代码实现

领域→划分→子领域→更小的问题域\更小的业务范围

子域根据自身的重要性和功能属性划分为三类:核心域(决定产品和公司核心竞争力的子域)、通用域(同时被其他多个子域通用功能的子域)、支撑域(功能子域、不包含决定产品核心竞争力的功能,不包含通用功能的子域)

通用域:通用系统,认证,权限,日志,不存在太多特性,和业务无关,服务整个业务领域,日志子域

支撑域:具有企业特性,不具有通用性

领域的核心思想,问题逐级划分,降级业务理解和系统的实现复杂度

核心域是业务系统的核心价值所在,系统中的重中之重

通用域:为整个业务系统提供通用服务,其他子域都是消费者

支撑域专注于业务系统的某一重要业务,来支撑和完善业务系统

限界上下文:

(定义上下文的含义)通用语言和(定义领域边界)限界上下文两个重要概念 (战略设计)

通过团队交流达成共识,能够简单、清晰、准确描述业务含义和规则语言

DDD核心概念

实体和值对象 领域模型中的领域对象

实体类的设计,直接反应数据库表结构

传统:关注数据

DDD实体是唯一的并且可以持续变化的

业务中:实体是多个属性、操作和行为的载体

代码:实体类,包含属性和方法,充血模型

运行形态:领域对象:唯一的ID

数据库:领域模型映射到数据模型,一个实体可能对应0个、1个或多个数据持久化对象

值对象:本质集合,描述实体的属性

值对象:值和对象,值的特点是固定不变。用对象的方式来表述某个值

业务对象:物理上独立出来,逻辑上仍然和实体是一体的

值对象,单一的属性,实体类的属性

值对象创建以后不允许修改

值对象:一把双刃剑。。。简化数据库设计,性能就提供

无法满足快速查询

值对象无法单独存在,单独存在的值对象没有任何意义,,他只是实体一部分的特征是属性

实体和值对象(个体化的对象)

值对象依附于实体的,实体属性的一部分

实体核心是唯一性,延续性

值对象核心是描述

聚合与聚合根

聚合,一种强关联关系,整体与部分

聚合:相关联的领域对象进行显式的分组,表达整体的概念

聚合(数据仓储):业务和逻辑紧密关联的实体和值对象组合而成

聚合:聚合根和上下文边界

DDD分层架构:聚合在领域层,包含; 多个聚合

领域服务和应用服务

领域服务:表述领域行为,对应行为的细化,具体谋一环节

应用服务:表述应用行为,具体操作,从开始到结束的每一环节

聚合根主要目的,为了避免由于复杂数据模型缺少统一的业务规则控制,导致聚合和实体之间,数据不一致的问题

聚合根(全局唯一标识,其他的状态信息都是可变的),实体(聚合内部才有唯一的本地标识),值对象(没有标识,只读)

聚合根:本质就是实体

DDD:是一个用来设计系统架构的思想,本身不是架构

DDD分层架构

严格分层架构 、松散分层架构

优点:程序结构清晰

分层架构的优点:开发人员可以只关注整个结构中的某一层

替换原有层次的实现

降低层与层之间的依赖

领域模型存在于限界上下文中

DDD的设计思想,去指导我们如何进行架构,利用分层

微服务的架构中,边界非常重要

仓储服务:接口和实现

洋葱架构:整洁架构,在项目中只有三层(核心应用,用户界面,基础设施

六边形架构:端口适配器架构

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-24 10:37:42  更:2021-09-24 10:38:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:52:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码