DDD的模式与实践案例(3)

简介: DDD的模式与实践案例(3)

限界笔纸法来源于TW的资深大佬,其本质上是对四色建模法的一种升级,将建模过程用纸和笔记录下来,形成表格。然后从这些表格实例中抽取实体和值对象,确定这些实体和值对象的聚合关系。


image.png


image.png


image.png


上图是CQRS架构的一个典型架构图,其核心就是将读和写进行分离,同时对写按命令场景去区分,


对读进行统一抽象。


但是很多情况下这个架构并不是我们首选的一种方式,后面会讲到。



在我看来洋葱架构很好的表达了DDD在不同架构风格的位置,说白了DDD所要表达的内容就是核,将需求建模成一个核,底层的技术组件和上层的用户接口以及测试用例都是围绕核来建设的。上图是洋葱架构的一种形式,另外一种形式就是基础设施作为核心,将Object Model和Service融入到核心的外层。


在洋葱架构中其要表达的核心思想就是,外层调用只能调用内层,不允许进行跨层调用。


image.png


COLA架构是我很早就接触过的一种架构思想,当时还在2.0阶段,我刚一看到也是一脸不屑,以为跟网易的COLA有啥关系,后来经过详细了解和揣摩之后发现这个架构的兼容性和扩展性以及适配性都比较好。当然这个图也很好的融合了整洁架构,适配器架构和洋葱架构的特点。


image.png


很多时候一个大型项目其实不止一种架构风格,比如DDD的分层架构和上述的COLA架构,这里其实可以将DDD的分层架构与CQRS架构进行融合,首先看写调用,调用流程正常走分层架构模式,中间加了一个cmd命令模型,exe执行器模块进行业务逻辑串联,读调用就可以单独走服务接口,正好与读写分离是相通的。



相关文章
|
IDE Linux 开发工具
Linux系统、版本、CPU、内存查看、硬盘空间
*查看系统版本:lsb_release -a [root@localhost /]# lsb_release -a *查看内核版本:uname -a *查看cpu型号:cat /proc/cpuinfo [root@localhost /]# cat ...
5863 0
|
JavaScript 前端开发
el-upload上传文件
el-upload上传文件
1486 0
|
3月前
|
消息中间件 缓存 NoSQL
Redis + Java 架构实战:从锁机制到消息队列的整合
本文深入解析Redis与Java的整合实践,涵盖分布式锁、消息队列、缓存策略、高性能数据结构及容错机制。结合电商场景,助力构建高并发、高可用的分布式系统。
219 8
|
10月前
|
自动驾驶 程序员 API
告别重复繁琐!Apipost参数描述库让API开发效率飙升!
在API开发中,重复录入参数占用了42%的时间,不仅效率低下还易出错。Apipost推出的参数描述库解决了这一痛点,通过智能记忆功能实现参数自动填充,如版本号、分页控制、用户信息等常用字段,大幅减少手动输入。支持Key-Value与Raw-Json格式导入,一键提取响应结果至文档,将创建20参数接口文档时间从18分钟缩短至2分钟。相比Postman需手动搜索变量,Apipost的参数复用响应速度仅0.3秒,且支持跨项目共享与实时纠错,真正实现“一次定义,终身受益”。
|
存储 人工智能 项目管理
效率翻倍!支持多人在线协作的协同工具
在数字化时代,团队协作的效率成为企业发展的重要驱动力。在线协同工具如板栗看板、Notion、Quip 和 Google Docs 等,通过实时共享信息、高效沟通和多功能集成,帮助团队成员跨越时间和空间限制,实现高效协作。这些工具不仅提升了项目管理的透明度和效率,还降低了沟通成本,适用于从项目管理到个人任务管理的多种场景。
效率翻倍!支持多人在线协作的协同工具
|
人工智能 自然语言处理 IDE
|
机器学习/深度学习 编解码 算法
【YOLOv11改进 - 注意力机制】MLCA(Mixed local channel attention):混合局部通道注意力
【YOLOv11改进 - 注意力机制】MLCA(Mixed local channel attention):混合局部通道注意力本项目提出了一种轻量级的 Mixed Local Channel Attention (MLCA) 模块,结合通道信息和空间信息,提升网络表达效果。基于此模块,开发了 MobileNet-Attention-YOLO (MAY) 算法,在 Pascal VOC 和 SMID 数据集上表现优异,mAP 分别提高了 1.0% 和 1.5%。MLCA 通过局部池化、一维卷积和信息融合,有效捕获局部和全局信息。项目代码和详细配置可在 GitHub 和 CSDN 获取。
|
Oracle 关系型数据库 数据库
Oracle数据库协议适配器错误解决方法
Oracle数据库协议适配器错误解决方法
1665 2
|
机器学习/深度学习 数据采集 消息中间件