Java实现DDD中UnitOfWork

Java实现DDD中UnitOfWork 背景 Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution o ... »

领域驱动设计在马蜂窝优惠中心重构中的实践

前言 正如领域驱动设计之父 Eric Evans 所著一书的书名所述,领域驱动设计(Domain Driven Design)是一种软件核心复杂性应对之道。 在我们解决现实业务问题时,会面对非常复杂的业务逻辑。即使是同一个事物,在多个子业务单元下代表的意思也是不完全一样的。比如「商品」这个词,在商品 ... »

CQRS之旅——旅程8(后记:经验教训)

这一章总结了我们旅程中的发现。它强调了我们在这个过程中所学到的最重要的经验教训,提出了如果我们用新知识开始这段旅程,我们将以不同的方式做的一些事情,并指出了Contoso会议管理系统的一些未来道路。 ... »

CQRS之旅——旅程7(增加弹性和优化性能)

我们旅程的最后阶段的三个主要目标是使系统对故障更具弹性,提高UI的响应能力,并确保我们的设计是可伸缩的。加强系统的工作主要集中在订单和注册限界上下文中的RegistrationProcessManager类。性能改进工作的重点是当订单创建时UI与领域域模型的交互方式。 ... »

[Abp vNext 源码分析] - 4. 工作单元

一、简要说明 统一工作单元是一个比较重要的基础设施组件,它负责管理整个业务流程当中涉及到的数据库事务,一旦某个环节出现异常自动进行回滚处理。 在 ABP vNext 框架当中,工作单元被独立出来作为一个单独的模块( Volo.Abp.Uow )。你可以根据自己的需要,来决定是否使用统一工作单元。 二 ... »

CQRS之旅——旅程6(我们系统的版本管理)

此阶段的最高目标是了解如何升级包含实现CQRS模式和事件源的限界上下文的系统。团队在这一阶段实现的用户场景包括对代码的更改和对数据的更改:更改了一些现有的数据模式并添加了新的数据模式。除了升级系统和迁移数据外,团队还计划在没有停机时间的情况下进行升级和迁移,以便在Microsoft Azure中运... ... »

DDD中的聚合和UML中的聚合以及组合的关系

UML:聚合关系:成员对象是整体的一部分,但是成员对象可以脱离整体对象独立存在。如汽车(Car)与引擎(Engine)、轮胎(Wheel)、车灯(Light)之间的关系为聚合关系,引擎、轮胎、车灯可以脱离车而存在,比如把一个引擎换到另一个汽车上也可以。 组合关系:也表示的是一种整体和部分的关系,但是 ... »

CQRS之旅——旅程5(准备发布V1版本)

本章描述了团队为准备Contoso会议管理系统的第一个产品版本所做的更改。这项工作包括对前两章介绍的订单(Order)和注册(Registrations)限界上下文的一些重构和功能添加,以及一个新的会议管理(Conference Management)限界上下文和一个新的支付(Payment)限界上... ... »

【吐血推荐】领域驱动设计学习输出

一、Hello DDD 刚开始接触学习 「DDD 领域驱动」 的时候,我被各种新颖的概念所吸引:「领域」、「领域驱动」、「子域」、「聚合」、「聚合根」、「值对象」、「通用语言」.....总之一大堆有关的、无关的概念从我的脑海经过,其中不乏让我陷入思考的地方,我原以为我会很开心地 “享用” 这些新知识 ... »

CQRS之旅——旅程3(订单和注册限界上下文)

这是我们CQRS旅程的第一站,因此团队决定实现一个核心的、但自包含的系统部分——订单和注册。对与会者来说,注册过程必须尽可能地轻松。该流程必须确保业务客户能够预订到尽可能多的座位,并为他们提供灵活的,在会议上为不同类型的座位设置价格的功能。 因为这是团队处理的第一个限界上下文,所以我们还实现了系... ... »

可落地的DDD(3)-如何利用DDD进行微服务的划分

摘要 前面两篇介绍了DDD的目标管理、DDD的工程结构调整。这篇讨论微服务的划分。微服务是目前后端比较流行的架构体系了,那么如何做好一个微服务的划分?一个微服务的粒度应该是多大呢?这篇主要介绍如何结合DDD进行领域划分。 工程结构代码 上篇介绍了 "可落地的DDD的(2) 为什么说MVC工程架构已经 ... »

CQRS之旅——旅程1(我们的领域:Contoso会议管理系统)

本章介绍了一个虚构的公司Contoso。它描述了Contoso计划推出的会议管理系统,这是一个新的在线服务,可以使其他公司或个人通过此系统组织和管理自己的会议和活动。本章从高层次描述了新系统的一些功能和非功能需求,以及为什么Contoso希望使用CQRS和Event Sourcing实现部分功能。... ... »

CQRS之旅——前言(翻译)

本项目定位为一个学习之旅。这份指南旨在帮助您开始了解CQRS和Event Sourcing模式,它并没有打算成为此模式的最终指南,相反,这只是一本杂谈,它讲述了一个此前没有CQRS经验的开发团队是怎样构建,部署(到Microsoft Azure)和维护一个实际的复杂企业系统作为参考实现(Refer... ... »

如何初识领域驱动设计

  研究领域驱动设计(后面简称DDD)有半年之多,初识DDD是因为了解何为充血模式,何为贫血模式,进而顺蔓摸瓜触及DDD,初次了解有种相见恨晚的感觉,为什么到现在才了解到有DDD这么个东西,之后,一个伴随我成长的疑惑,在我成长过程中不断致力于去解决,终于在DDD帮助下云拨雾散。 &nbsp ... »

NLayerAppV3-Distributed Service Layer(分布式服务层)

回顾:NLayerAppV3是一个使用.net 2.1实现的经典DDD的分层架构的项目。 NLayerAppV3是在NLayerAppV2的基础上,使用.net core2.1进行重新构建的;它包含了开发人员和架构师都可以重用的DDD层。 Github地址:https://github.com/ce ... »