摘要:这是关于领域驱动设计的一个系列博文,目的是在学习之后能够使用领域驱动设计的知识来开发应用。领域驱动设计是目前比较火的概念,其实早在2004年的时候 **Eric Evans** 就提出了领域驱动设计。但是直到后期才被大家所认识,特别是随着现在微服务的兴起,许许多多的人意识到了领域驱动设计的好处,认为它是指导微服务设计的一把利器。 阅读全文
posted @ 2020-01-08 16:13 句幽 阅读 (151) 评论 (3)
摘要:IEnumerable**和**IEnumerator**,如果不仔细看,是不是都以为它们是同样的一个单词。特别是我们习惯了每天看大量的中文,这种只是很小区别的单词更是容易犯错。在.NET的世界里好像有这种类似单词的情况还真的不少,比如**Authentication**和**Authorization**(认证和授权)。记得第一次见着它俩的时候,我说怎么看了半天怎么第一部分是它,第二个部分还是它?甚至我一度以为它们是同一个东西。(*关于认证和授权将在后期为大家介绍。*) 阅读全文
posted @ 2020-01-10 18:05 句幽 阅读 (171) 评论 (4)
摘要:虽然领域驱动设计的思想很诱人,但我们依然会面临各种隐藏的困难,就比如今天我们要讲的主题“持久化”:即使前期我们设计了足够完整的领域对象,但是依然需要持久化它们到数据库中,而普通的关系型数据库可能很难维持领域对象的原有结构,所以我们必须要使用一些特有的手段来处理它。将值对象持久化成字段好呢?还是将值对象持久化为表好呢?集合的值对象又怎么存呢? 阅读全文
posted @ 2020-01-08 16:29 句幽 阅读 (2170) 评论 (27)
摘要:这是关于领域驱动设计的一个系列博文,目的是在学习之后能够使用领域驱动设计的知识来开发应用。领域驱动设计是目前比较火的概念,其实早在2004年的时候 **Eric Evans** 就提出了领域驱动设计。但是直到后期才被大家所认识,特别是随着现在微服务的兴起,许许多多的人意识到了领域驱动设计的好处,认为它是指导微服务设计的一把利器。 阅读全文
posted @ 2020-01-08 16:13 句幽 阅读 (151) 评论 (3)
摘要:【五分钟的dotnet】是一个利用您的碎片化时间来学习和丰富.net知识的博文系列。它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net知识等等。您可以在下班坐地铁的时候,拿出手机逛一逛manbetx官方网站,利用短短的五分钟完成阅读。 阅读全文
posted @ 2020-01-06 18:05 句幽 阅读 (551) 评论 (4)
摘要:在上一篇 《如何运用领域驱动设计 - 存储库》 的文章中,我们讲述了有关仓储的概念和使用规范。仓储为聚合提供了持久化到本地的功能,但是在持久化的过程中,有时一个聚合根中的各个领域对象会分散到不同的数据库表里面;又或者是一个用例操作需要操作多个仓储;而这些操作都应该要么同时成功,要么同时失败,因此就需要为这一系列操作提供事务的支持,而事务管理就是由工作单元来提供的。在上一篇中,可能已经提到了工作单元,但是仅仅是一笔带过,现在我们就来详细的探究该如何更好的来实现工作单元。(文章的代码片段都使用的是**C#**,案例项目也是基于 **DotNet Core** 平台)。 阅读全文
posted @ 2020-01-01 17:28 句幽 阅读 (1621) 评论 (13)
摘要:在上一篇文章中,我们已经了解过领域驱动设计中一个很核心的对象-聚合。在现实场景中,我们往往需要将聚合持久化到某个地方,或者是从某个地方创建出聚合。此时就会使得领域对象与我们的基础架构产生紧密的耦合,那么我们应该怎么隔绝这一层耦合关系,使它们自身的职责界限更加清晰呢?是的,这就要用到我们今天要讲的内容 - 存储库。在很多地方,我们喜欢叫它为仓储,特别是在现有的AspNetCore应用中,大量的应用都在引入Repository这种东西。那么究竟什么是存储库呢?我们现在的使用方式是正确的吗?它在领域驱动设计中又扮演着怎样的角色呢?本文将从不同的角度来带大家重新认识一下“存储库”这个概念。 阅读全文
posted @ 2019-12-25 17:04 句幽 阅读 (1976) 评论 (14)
摘要:[toc] 概述 在前几篇的博文中,我们已经学习到了如何运用实体和值对象。随着我们所在领域的不断深入,领域模型变得逐渐清晰,我们已经建立了足够丰富的实体和值对象。但随着实体和值对象的数量逐渐增多,它们之间的关系也显得越来越复杂:实体A与实体B存在一对一的关系,实体B又与实体C存在一对多的关系。就这样 阅读全文
posted @ 2019-12-18 18:16 句幽 阅读 (2551) 评论 (17)
摘要:[toc] 概述 本文将介绍领域驱动设计(DDD)战术模式中另一个非常重要的概念 领域服务。在前面两篇博文中,我们已经学习到了什么是值对象和实体,并且能够比较清晰的定位它们自身的行为。但是在某些时候,你会发现某一些业务行为好像不容易落到单个实体或者值对象身上,并且会为放置这一部分业务逻辑而困惑。此时 阅读全文
posted @ 2019-12-11 17:30 句幽 阅读 (2299) 评论 (30)
摘要:本文将介绍领域驱动设计(DDD)战术模式中另一个常见且非常重要的概念 - 实体。相对战术模式中其他的一些概念(例如 值对象、领域服务等)来说,实体应该比较容易让人理解和运用。但是我们如何去发现所在领域中的实体呢?如何保证建立的实体是富含行为的?实体运用时又有那些注意的细节呢?本文将从不同的角度来带大家重新认识一下“实体”这个概念,并且给出相应的代码片段 阅读全文
posted @ 2019-12-04 17:34 句幽 阅读 (2560) 评论 (29)
摘要:[toc] 概述 作为领域驱动设计战术模式中最为核心的一个部分 值对象。一直是被大多数愿意尝试或者正在使用DDD的开发者提及最多的概念之一。但是在学习过程中,大家会因为受到传统开发模式的影响,往往很难去运用值对象这一概念,以及在对值对象进行持久化时感到非常的迷惑。本篇文章会从值对象的概念出发,解释什 阅读全文
posted @ 2019-11-28 18:05 句幽 阅读 (1589) 评论 (21)