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)VS面向数据表设计 -> 正文阅读

[大数据]领域驱动设计(DDD)VS面向数据表设计

  • 目录

    概念介绍

    领域驱动设计(DDD)

    面向数据表设计

    领域驱动设计优点

    设计承接分层架构对比


  • 概念介绍

    • 领域驱动设计是一种设计思想,在落地时主要使用四层架构承接
    • 面向数据表设计,一般使用三层架构承接,但是也可以使用四层架构承接
  • 领域驱动设计(DDD)

    • DDD 是一种在面向高度复杂的软件系统时,关于如何去建模的方法论。
    • DDD解决了什么问题?
      • DDD解决了对复杂应用建模的问题,通过DDD提高架构和代码的可理解性,从而降低维护成本。
    • 适用场景
      • DDD 适用于复杂业务建模以及业务场景不确定的任务 。
      • 对于业务场景确定或者,业务场景简单的系统,面向数据库设计更适合。
    • 承接DDD设计的分层架构
      • 四层架构
      • 六边形模型
      • 洋葱模型
  • 面向数据表设计

    • 传统开发,以设计数据表为中心。
    • 在面向数据表设计中,系统的开发主要集中于数据表的设计,包括字段的设计以及表关系的设计。
      • 数据集中存储在不同的数据表中,数据表的设计需要符合各种范式和标准。
    • 业务逻辑通过一系列针对这些数据表的增删改查来实现。
    • 适用场景
    • 承接面向数据表设计的分层架构
      • 三层架构
        • User Interface layer(表示层, UI) 接受对用户的请求并返回数据,将结果呈现给用户。
        • Business Logic Layer(业务逻辑层, BLL) 主要负责接受表现层的请求,进行各种业务逻辑运算,然后通过数据访问层完成数据的操作。
        • Data Access Layer(数据访问层, DAL) 主要负责数据的查询、持久化等操作,关注数据一致性、准确性,不关注业务逻辑
      • 四层架构
        • User Interface(用户接口层)
          • 职责:
            • 负责向用户显示信息、解释用户命令。这里的用户可以是真正的用户、自动化测试程序、批处理脚本等。
        • Application Layer(应用层)
          • 主要负责:
            • 负责对领域服务、其他应用服务的封装、编排、组合。
          • 主要特点:
            • 这一层都很薄,主要是服务的组合与编排。
          • 特别注意:
            • 不要将领域层的逻辑放在应用层中实现,否则很容易导致应用层、领域层的边界混乱,最终导致DDD的四层架构变成三层架构。
        • Domain Layer(领域层)
          • 主要职能:
            • 实现领域对象或者聚合自身的原子业务逻辑,关注领域模型的能力,不太关注外部用户操作或者流程方面的控制。
          • 主要包括:
            • 领域服务、值对象、实体、聚合、聚合根等。
        • Infrastructure Layer(基础设施层)
          • 主要职能:
            • 为其他各层提供通用的技术和技术服务。
          • 主要包括:
            • 封装消息中间件、网关、缓存、文件服务、数据库等。
          • 主要作用
            • 封装基础资源的服务,实现应用层、领域层、基础层解耦,降低对外部资源依赖。例如:如果没有此层,当消息中间件、缓存变化时,将会大面积修改业务逻辑。
  • 领域驱动设计优点

    • 快速响应需求变化
    • 例子
      • 场景
        • 业务新增需求变化
      • 领域驱动设计的处理流程
        • 分析需求
        • 产出需求对应的领域事件,命令
        • 领域建模,产出领域对象
        • 优点
          • 快速定位新增需求对应的领域对象,映射到对应的数据模型
      • 面向数据表设计的处理流程
        • 分析需求
        • 分析需要新增的字段
        • 确认数据表的变化
          • 具体在哪个表格新增字段
        • 编写代码,操作数据表格,完成业务
        • 缺点
          • 无法确认应在哪张表新增字段
  • 设计承接分层架构对比

    • 三层架构vs四层架构
      • 区别:
        • 三层架构:
          • 三层架构的业务处理都放在Service层,所有的Service对象都处在同一个逻辑层级,Service对象即负责领域内逻辑,又负责领域间协调(此处的领域泛指业务边界)。Service层的内部是一张网。
        • 四层架构:
          • 四层架构将领域间协调和领域内逻辑处理分开成两层,分别用application Service和domin service处理,这样使得整个业务处理层(application service + domain service )变成了一个树形结构。
        • 在所有的数据结构中,树形结构是在能够承载比较多信息量的同时,逻辑结构最简单的数据结构。
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-11 22:17:06  更:2022-03-11 22:18:16 
 
开发: 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/24 9:54:36-

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