当前位置: 首页 >  电商服务 >  .NET现代应用的产品设计 - DDD实践

.NET现代应用的产品设计 - DDD实践

导读:统一术语(战略设计).我们将通过DDD完成业务与技术的完整落地.统一.领域模型术语.DDD模式名称.技术.技术设计术语.技术术语.技术设计模式.业务.领域模型术语.DDD模式名称.业务术语.设计无关的业务术语.清晰的事件流.DDD.领域驱动设计是一个有关软件开发的方法论,它提出基

统一术语(战略设计)

我们将通过DDD完成业务与技术的完整落地

统一

领域模型术语
DDD模式名称

技术

技术设计术语
技术术语
技术设计模式

业务

领域模型术语
DDD模式名称
业务术语
设计无关的业务术语

清晰的事件流

DDD

领域驱动设计是一个有关软件开发的方法论,它提出基于领域开发的开发模式,基于DDD理论,我们可以设计出高质量的软件模型。它围绕业务概念构建领域模型来控制业务的复杂度,解决软件难以理解和演化的问题。

战略设计(业务)

领域、子域、限界上下文将领域拆分成子域,并划分核心子域、支撑子域和通用子域

以子域展开事件风暴,根据上下文语义划分限界上下文,建立通用语言,完成

领域建模领域建模将作为能力中心规划的重要依据

完成能力中心地图和优先级后,作为微服务设计的输入完成战术设计

战术设计(技术)

聚合、聚合根、实体、值对象、领域服务等

按照领域模型完成微服务设计和落地

建立聚合、聚合根、实体、值对象、领域服务等对象之间的依赖关系,以代码对象的形式映射到服务中,采用分层架构完成微服务设计和落地

事件风暴

一种灵活的研讨会形式,用于协作探索复杂的业务领域

活动准备

:业务人员,领域专家,技术人员,架构师,测试等

看板 :可以将事件流可视化的白板或者画图工具等

彩色贴纸 :填写事件,命令等

业务场景 :规定业务场景,以一个电商项目为例


事件风暴流程精简版

领域对象设计

领域对象关系

分解聚合,提取该聚合包含的领域对象
领域对象的业务不变性
领域对象具有一致的生命周期

例:订单聚合包含订单实体,订单行实体订单实体包含收货地址值对象

定义实体与值对象

实体:存在唯一性标识,实体间是否相等的判断依据也是唯一标识
值对象:表示属性的不变值

C4模型


用于可视化软件架构:反映软件架构师和开发人员如何思考和构建软件的抽象

Context :各软件系统如何交互,不关注细节

Containers :可以看到软件系统内部结构,如U,服务,DB等如何协作,通信等

Components :展示容器内的组件关系和组件的职责

Code :展示组件如何实现,如UML类图、实体关系图等,非特别复杂组件不建议关注

架构设计

我们简单的把架构设计看作是三个层面:

业务架构

根据业务需求设计业务模块及其关系 :DDD的领域建模其实就已经协助我们做了业务架构和系统架构

系统架构

设计系统与子系统的模块及其关系 :在DDD中业务架构是可以直接映射到系统架构上的业务变化会演变为系统架构变化,影响到技术架构变化

技术架构

根据业务需求设计业务模块及其关系 :技术架构(微服务)则解决子系统之间的解耦,去中心化的服务治理和数据治理

前后分离

扫码进群,了解更多
MASA Framework欢迎你的加入

内容
  • UE 油画滤镜
    UE 油画滤镜
    2023-12-07
    前言.非真实感渲染的风格不经相同,其中一种便是油画风格,本文总结了如何实现油画滤镜的方法.Kuwahara Filter
  • 驱动开发:取进程模块的函数地址
    驱动开发:取进程模块的函数地址
    2023-12-02
    在笔者上一篇文章《驱动开发:内核取应用层模块基地址》中简单为大家介绍了如何通过遍历PLIST_ENTRY32链表的方式获
  • 【Haxe】(二)字符串与变量的输入输出
    【Haxe】(二)字符串与变量的
    2023-12-06
    前言.每次学习一门新语言,各种手册和教程一上来就是讲变量如何定义,数据结构怎么用,很少有讲输入输出应该怎么写的。我比较喜
  • 带你了解基于Ploto构建自动驾驶平台
    带你了解基于Ploto构建自动驾
    2023-12-04
    摘要: 华为云Solution as Code推出基于Ploto构建自动驾驶平台解决方案。.本文分享自华为云社区《基于P
  • 缓存面试解析:穿透、击穿、雪崩,一致性、分布式锁、Redis过期,海量数据查找
    缓存面试解析:穿透、击穿、雪崩,
    2023-12-03
    为什么使用缓存.在程序内部使用缓存,比如使用map等数据结构作为内部缓存,可以快速获取对象。通过将经常使用的数据存储在缓
  • 智能网卡、DPDK、BSP
    智能网卡、DPDK、BSP
    2023-12-06
    初步学习DPDK,发现跟公司项目极其相似,但是公司的项目属于智能网卡,一时间分不清什么是DPDK,什么是智能NIC,找到