浅谈DDD
2003 年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》。DDD全称Domain-Driven Design, 是一种处理复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题,是面向对象的设计思想,是面向对象... ... »
2003 年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》。DDD全称Domain-Driven Design, 是一种处理复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题,是面向对象的设计思想,是面向对象... ... »
作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获! »
Java实现DDD中UnitOfWork 背景 Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution o ... »
Martin Fowler在《 "企业应用架构模式" )》一书中写道: I found this(business logic) a curious term because there are few things that are less logical than business logic ... »
一、简要介绍 ABP vNext 针对于应用服务层,为我们单独设计了一个模块进行实现,即 Volo.Abp.Ddd.Application 模块。 PS:最近博主也是在恶补 DDD 相关的知识,这里推荐大家看一下 "ThoughtWorks" 的 DDD 相关文章。 关于 DDD 相关的著作,我这儿 ... »
前言 正如领域驱动设计之父 Eric Evans 所著一书的书名所述,领域驱动设计(Domain Driven Design)是一种软件核心复杂性应对之道。 在我们解决现实业务问题时,会面对非常复杂的业务逻辑。即使是同一个事物,在多个子业务单元下代表的意思也是不完全一样的。比如「商品」这个词,在商品 ... »
这一章总结了我们旅程中的发现。它强调了我们在这个过程中所学到的最重要的经验教训,提出了如果我们用新知识开始这段旅程,我们将以不同的方式做的一些事情,并指出了Contoso会议管理系统的一些未来道路。 ... »
我们旅程的最后阶段的三个主要目标是使系统对故障更具弹性,提高UI的响应能力,并确保我们的设计是可伸缩的。加强系统的工作主要集中在订单和注册限界上下文中的RegistrationProcessManager类。性能改进工作的重点是当订单创建时UI与领域域模型的交互方式。 ... »
一、简要说明 统一工作单元是一个比较重要的基础设施组件,它负责管理整个业务流程当中涉及到的数据库事务,一旦某个环节出现异常自动进行回滚处理。 在 ABP vNext 框架当中,工作单元被独立出来作为一个单独的模块( Volo.Abp.Uow )。你可以根据自己的需要,来决定是否使用统一工作单元。 二 ... »
此阶段的最高目标是了解如何升级包含实现CQRS模式和事件源的限界上下文的系统。团队在这一阶段实现的用户场景包括对代码的更改和对数据的更改:更改了一些现有的数据模式并添加了新的数据模式。除了升级系统和迁移数据外,团队还计划在没有停机时间的情况下进行升级和迁移,以便在Microsoft Azure中运... ... »
UML:聚合关系:成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在。如汽车(Car)与引擎(Engine)、轮胎(Wheel)、车灯(Light)之间的关系为聚合关系,引擎、轮胎、车灯可以脱离车而存在,比如把一个引擎换到另一个汽车上也可以。 组合关系:也表示的是一种整体和部分的关系,但是 ... »
本章描述了团队为准备Contoso会议管理系统的第一个产品版本所做的更改。这项工作包括对前两章介绍的订单(Order)和注册(Registrations)限界上下文的一些重构和功能添加,以及一个新的会议管理(Conference Management)限界上下文和一个新的支付(Payment)限界上... ... »
一、Hello DDD 刚开始接触学习 「DDD 领域驱动」 的时候,我被各种新颖的概念所吸引:「领域」、「领域驱动」、「子域」、「聚合」、「聚合根」、「值对象」、「通用语言」.....总之一大堆有关的、无关的概念从我的脑海经过,其中不乏让我陷入思考的地方,我原以为我会很开心地 “享用” 这些新知识 ... »
前一章详细描述了订单和注册限界上下文。本章描述了在CQRS之旅的第二阶段,团队在这个限界上下文中所做的一些更改。 本章的主题包括: * 改进RegistrationProcessManager类中消息相关的工作方式。这说明了限界上下文中的聚合实例如何以复杂的方式进行交互。 * 实现一个记录定位... ... »
这是我们CQRS旅程的第一站,因此团队决定实现一个核心的、但自包含的系统部分——订单和注册。对与会者来说,注册过程必须尽可能地轻松。该流程必须确保业务客户能够预订到尽可能多的座位,并为他们提供灵活的,在会议上为不同类型的座位设置价格的功能。 因为这是团队处理的第一个限界上下文,所以我们还实现了系... ... »
摘要 前面两篇介绍了DDD的目标管理、DDD的工程结构调整。这篇讨论微服务的划分。微服务是目前后端比较流行的架构体系了,那么如何做好一个微服务的划分?一个微服务的粒度应该是多大呢?这篇主要介绍如何结合DDD进行领域划分。 工程结构代码 上篇介绍了 "可落地的DDD的(2) 为什么说MVC工程架构已经 ... »
在本章中,我们将对Contoso会议管理系统进行一个高层次的概述。这将帮助您理解应用程序的结构、集成点以及应用程序的各个部分之间的关系。 ... »
本章介绍了一个虚构的公司Contoso。它描述了Contoso计划推出的会议管理系统,这是一个新的在线服务,可以使其他公司或个人通过此系统组织和管理自己的会议和活动。本章从高层次描述了新系统的一些功能和非功能需求,以及为什么Contoso希望使用CQRS和Event Sourcing实现部分功能。... ... »
本项目定位为一个学习之旅。这份指南旨在帮助您开始了解CQRS和Event Sourcing模式,它并没有打算成为此模式的最终指南,相反,这只是一本杂谈,它讲述了一个此前没有CQRS经验的开发团队是怎样构建,部署(到Microsoft Azure)和维护一个实际的复杂企业系统作为参考实现(Refer... ... »
研究领域驱动设计(后面简称DDD)有半年之多,初识DDD是因为了解何为充血模式,何为贫血模式,进而顺蔓摸瓜触及DDD,初次了解有种相见恨晚的感觉,为什么到现在才了解到有DDD这么个东西,之后,一个伴随我成长的疑惑,在我成长过程中不断致力于去解决,终于在DDD帮助下云拨雾散。   ... »