2

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

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

AngryMoto 发布于 2019-06-26 09:54 评论(0)阅读(153)
2

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

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

netfocus 发布于 2019-06-24 17:48 评论(9)阅读(616)
2

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

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

AngryMoto 发布于 2019-06-20 09:35 评论(3)阅读(190)
2

从厕所排队引发的产品设计方案思考

​ (我是封面) 题外话 最近半个月陆续写了一些研发的文章,有spring boot,docker,zookeeper等示例,感兴趣的可以点菜单去看看。虽然一直对技术手痒痒,但是这个月迫于工作回归主业产品了,文章也会全部和产品相关。 上周末去参加了一个产品总监的培训(主要原因:一方面是在家带娃真的太 ...

crazy_joe 发布于 2019-06-18 16:45 评论(3)阅读(441)
3

CQRS之旅——旅程4(扩展和增强订单和注册限界上下文)

前一章详细描述了订单和注册限界上下文。本章描述了在CQRS之旅的第二阶段,团队在这个限界上下文中所做的一些更改。 本章的主题包括: * 改进RegistrationProcessManager类中消息相关的工作方式。这说明了限界上下文中的聚合实例如何以复杂的方式进行交互。 * 实现一个记录定位... ...

AngryMoto 发布于 2019-06-12 11:10 评论(0)阅读(211)
29

DDD战略设计相关核心概念的理解

前言 本文想再讨论一下关于领域、业务、业务模型、解决方案、BC、领域模型、微服务这些概念的含义和关系。初衷是我发现现在DDD领域建模以及解决方案落地过程中,常常对这些概念理解不清楚或者有歧义,导致我们不知道如何运用这些概念来落地我们的软件。先通过一个图来说明一下这些概念之间的关系,如下图所示 领域、 ...

netfocus 发布于 2019-06-05 15:41 评论(16)阅读(2498)
2

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

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

AngryMoto 发布于 2019-05-31 10:45 评论(4)阅读(255)
2

CQRS之旅——旅程2(分解领域)

在本章中,我们将对Contoso会议管理系统进行一个高层次的概述。这将帮助您理解应用程序的结构、集成点以及应用程序的各个部分之间的关系。 ...

AngryMoto 发布于 2019-05-30 09:23 评论(1)阅读(215)
1

CQRS之旅——前言(翻译)

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

AngryMoto 发布于 2019-05-28 12:54 评论(0)阅读(209)
3

DDD领域建模基本流程

整理一个精简的DDD领域建模基本流程,供大家在DDD领域建模实践中进行参考。 在以上过程中,还有两点也是非常重要的: 逐步积累一个统一语言(UL)的领域术语表,方便各方人员沟通; 除了领域建模外,针对每个用例场景,尝试画一下系统顺序图也很有用,系统顺序图定义了系统外部角色和系统之间在某个场景下的具体 ...

netfocus 发布于 2019-05-24 11:05 评论(4)阅读(475)
23

EventStore文件存储设计

背景 ENode是一个CQRS+Event Sourcing架构的开发框架,Event Sourcing需要持久化事件,事件可以持久化在DB,但是DB由于面向的是CRUD场景,是针对数据会不断修改或删除的场景,所以内部实现会比较复杂,性能也相对比较低。而Event Store实际上对数据只有新增和查 ...

netfocus 发布于 2019-05-14 11:23 评论(5)阅读(1362)
0

领域驱动设计资料收集与简单实现(一):什么是领域驱动设计,通用语言

什么是领域驱动设计 领域驱动设计(DDD):DDD的全称为Domain driven Design,是一套综合软件系统分析和设计的面向对象建模方法,是针对复杂系统设计的一套软件工程方法,是一种思想。 什么是领域:领域是问题域 + 业务期望 一:问题域:领域中有许多的问题域,领域是有边界的,要注重核心 ...

往事随灬锋 发布于 2019-05-05 09:11 评论(3)阅读(478)
0

USB总线标准

1.USB总线类型: OHCI(Open Host Controller Interface)是支持USB1.1的标准,但它不仅仅是针对USB,UHCI(Universal Host Controller Interface),是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容EH ...

艾艾贴 发布于 2019-04-29 11:40 评论(0)阅读(61)
0

《领域驱动设计》干货整理

Repository设计思路 像模块化系统、模块化代码一样,模块化数据库中的表。使得每个模块之间有清晰的界限。 Repository代码设计 1. 可以将Repository理解为一个集合(这里的集合更偏重于是Collection,而不是Set),它包括了对存储对象基本的增删改查(CURD)功能。同 ...

Dybvig 发布于 2019-04-10 00:56 评论(1)阅读(264)
0

2018-01-19 Xtext试用: 快速实现简单领域专用语言(DSL)

环境搭建 使用的Eclipse版本: Oxygen.1a Release (4.7.1a) Build id: 20171005 1200, 通过添加 "Xtext Download" 上列出的Releases update site安装xtext IDE和xtext SDK. 之后打开Eclips ...

吴烜 发布于 2019-03-07 11:49 评论(0)阅读(50)