随笔分类 -  DDD

摘要:看到博客园一位园友写了一篇文章,其中的观点是,要想高性能,需要尽量:避开网络开销(IO),避开海量数据,避开资源争夺。对于这3点,我觉得很有道理。所以也想谈一下,CQRS架构下是如何实现高性能的。 关于CQRS(Command Query Responsibility Segration)架构,大家 阅读全文
posted @ 2022-06-15 15:54 春光牛牛 阅读(733) 评论(0) 推荐(0)
摘要:与CQRS关联最为紧密的模式莫过于Event Sourcing了,CQRS与ES的结合,为我们构造高性能、可扩展系统提供了基本思路。本文将介绍 Kanasz Robert在《Introduction to CQRS》中的示例项目Diary.CQRS。 获取Diary.CQRS项目 该项目为Kanas 阅读全文
posted @ 2022-06-15 12:57 春光牛牛 阅读(150) 评论(0) 推荐(0)
摘要:关于CQRS,在实现上有很多差异,这是因为CQRS本身很简单,但是它犹如潘多拉魔盒的钥匙,有了它,读写分离、事件溯源、消息传递、最终一致性等都被引入了框架,从而导致CQRS背负了太多的混淆。本文旨在提供一套简单的CQRS实现,不依赖于ES、Messaging等概念,只关注CQRS本身。 CQRS的本 阅读全文
posted @ 2022-06-15 10:47 春光牛牛 阅读(142) 评论(0) 推荐(0)
摘要:CQRS的全称是Command Query Responsibility Segregation,翻译成中文叫作命令查询职责分离。从字面上就能看出,这个模式要求开发者按照方法的职责是命令还是查询进行分离,什么是命令?什么是查询?我们来继续往下看。 Query & Command 什么是命令?什么是查 阅读全文
posted @ 2022-06-15 10:40 春光牛牛 阅读(448) 评论(0) 推荐(1)
摘要:MediatR是一款进程内的消息订阅、发布框架,提供了Send方法用于发布到单个处理程序、Publish方法发布到多个处理程序,使用起来非常方便。目前支持 .NET Framework4.5、.NET Stardand1.3、.NET Stardand2.0等版本,可跨平台使用。 使用MediatR 阅读全文
posted @ 2022-06-14 23:14 春光牛牛 阅读(2006) 评论(0) 推荐(1)
摘要:一.DDD分层架构介绍 本篇分析CQRS架构下的Equinox开源项目。该项目在github上star占有2.4k。便决定分析Equinox项目来学习下CQRS架构。再讲CQRS架构时,先简述下DDD风格,在DDD分层架构中,一般包含表现层、应用程序层(应用服务层)、领域层(领域服务层)、基础设施层 阅读全文
posted @ 2022-06-14 18:45 春光牛牛 阅读(518) 评论(0) 推荐(0)
摘要:项目基础分层 基础设施层 基础设施层使用的相关知识:Code First ,EF Core,Autofac依赖注入,仓储模式的实现接口,领域服务的实现接口,缓存,以及各种基础工具类 一,Code First:使用Code First 数据迁移到数据库。 常用的数据库迁移命令: Add-Migrati 阅读全文
posted @ 2022-06-12 23:21 春光牛牛 阅读(539) 评论(0) 推荐(0)
摘要:DDD为什么能火起来? 我们先不讨论DDD的定义, 先梳理一下DDD火起来的背景, 根据我学习的套路, 永远是为什么为先,再是解决什么问题,是什么东西, 最后如何使用。我们都知道这些年随着设备以及技术的发展,软件架构发生了很多变化,从最初的单机(BS/CS)架构到后面的集中式架构,再到如今的微服务架 阅读全文
posted @ 2022-06-07 18:33 春光牛牛 阅读(49) 评论(0) 推荐(0)
摘要:DDD,领域驱动设计 1. 走进 DDD 1.1 为什么要用 DDD ? 面向对象设计,数据行为绑定,告别贫血模型; 降低复杂度,分而治之; 优先考虑领域模型,而不是切割数据和行为; 准确传达业务规则,业务优先; 代码即设计; 它通过边界划分将复杂业务领域简单化,帮我们设计出清晰的领域和应用边界,可 阅读全文
posted @ 2022-06-07 16:18 春光牛牛 阅读(444) 评论(0) 推荐(0)