• DDD概念理解


    1、统一语言:通过团队交流、达成共识的、能够准确传递业务规则的、简单:语音
    特点:通用、简单、无歧义
    价值:解决了沟通障碍问题,使领域专家和开发人员协同合作

    2、领域模型:把通用语言表达成软件模型
    特点:综合了系统分析和设计,语言、模型、代码三者紧密绑定,可以通过UML类图来展示

    3、领域:软件系统要解决实际问题(业务)的集合
    解决方案空间:如何实现软件以解决业务挑战

    4、子领域
    核心域:业务系统核心价值所在,支持子领域,通用子领域
    例子:电商领域
    核心领域:销售子领域,通用领域:日志子领域,支持领域:物流子领域

    5、限界上下文
    限界:一个界限,具体某个范围---领域模型的边界
    本质:保证模型概念的清晰和无歧义,避免有多重概念和职责的模型
    例子:商品,在采购上下文中叫:补货商品,在售后上下文中叫:售后商品,都叫商品,但侧重点不同
    梳理关系:上下文映射图:描述不同模型的联系点,上下文依赖

    6、应用服务
    表述应用行为
    例子:购物车结算-》应用行为隐藏领域层的复杂性及内部实现

    7、领域服务
    表述领域行为:金额计算、支付、生成订单

    8、聚合
    领域对象的显示分组
    封装业务,保证聚合内领域对象的数据一致性
    难点:一致性维护
    聚合内实现事物一致性,聚合外实现最终一致性

    9、实体
    实体=唯一身份表示+可变性(状态、属性)+行为(方法/领域事件、领域服务)
    可变性:实体行为:订单行为:支付、发货、关闭
    实体状态:已支付、已发货、已关闭

    10、值对象
    将一个值用对象的方式进行表达,表达一个固定不变的概念
    例如:订单里的收货地址(订单里的收货地址没有状态不会变。可以冗余到订单表多个字段或一个字段用json存储)

    11、仓库
    领域模型与持久化存储之间的明确契约(封装ORM框架对领域暴漏持久化接口)

    12、领域事件
    实现方式:数据库持久化,通过中间件去分发

    13、工厂
    14、模块
    对领域模型进行分解后相对独立的功能单元,由一系列高内聚的领域对象组成
    设计:根据领域组织模块,基于通用语音(模块命名),模块内高内聚模块间低耦合
    实现方式:同一个项目通过模块名称进行分离,通过多个项目进行分离

    15架构风格
    1、分层架构,2、六边形(端口和适配器),3、面相服务,4、RESTFul,5、命令查询分离CQRS,6、事件驱动
    分层架构(4层架构):UI层,应用层,领域层,基础设施层
    UI层:接收用户输入,输出JSON数据,Facade层:分离UI和应用层讲应用层数据映射成UI层适应的数据
    应用层:定义实现业务功能,通过编排领域层接口实现功能
    领域层:具体的业务能力,对应领域内的领域模型及代码实现,具体的功能
    基础设施层:为其它层提供技术支持,包含持久化、序列化、消息、缓存

    六边形架构:
    端口:应用层(application)和领域层(Domain)通过端口(API调用)实现
    适配器:针对不同的外部资源可以对接不同的适配器
    保证内部逻辑的独立和外部依赖的解耦

    SOA:注重服务的重用性,倾向于通过统一的服务总线将服务链接起来,形成服务试图,注重系统的整体性和统一性
    微服务:以业务能力为中心,重视服务自治,每个服务都有独立的开发、部署环境、数据库、技术栈,强调敏捷和快速迭代

    RESTFul:表述性状态转换,基于http,url,xml,json等标准格式,面向资源的架构模式

    命令查询职责分离CQRS:读写分离,实体,接口都分离


     

  • 相关阅读:
    P1541 [NOIP2010 提高组] 乌龟棋(4维背包问题)
    uniapp 返回上一步携带参数
    企业电子招投标系统源码之电子招投标系统建设的重点和未来趋势
    计算机毕业设计 基于SSM的民宿推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解
    Redis五种基本数据类型-String
    react快速开始(三)-create-react-app脚手架项目启动;使用VScode调试react
    【配电变电站的最佳位置和容量】基于遗传算法的最优配电变电站放置(Matlab代码实现)
    Java基于springboot+vue+element医疗用品销售购物商城系统 前后端分离
    【系统架构】什么是集群?为什么要使用集群架构?
    Docker镜像加载原理
  • 原文地址:https://blog.csdn.net/qq_26418435/article/details/132824829