
DDD
文章平均质量分 93
领域驱动设计
carroll18
你想要拥有你从未有过的东西,你必须去做你从未做过的事情。
展开
-
领域驱动设计:分布式架构关键设计10问
一体化分布式数据库主要由互联网大厂开发,具有超强的数据处理能力,大多需要云计算底座,实施成本和技术能力要求比较高。集中式数据库 + 数据库中间件方案,实施成本和技术能力要求适中,可满足中大型企业业务要求。第三种分库类库的方案可处理简单的业务场景,成本和技能要求相对较低。在选择数据库的时候,我们要考虑自身能力、成本以及业务需要,从而选择合适的方案。它是一种轻量级的数据库中间件方案,分库类库实际上是一个基础 JAR 包,与应用软件部署在一起,实现数据路由和数据归集。原创 2023-10-24 16:25:01 · 212 阅读 · 0 评论 -
领域驱动设计:微服务的设计原则和演进策略
1. 绞杀者策略2. 修缮者策略1. 新建系统2. 单体遗留系统1. 所有的领域都用 DDD2. 全部采用 DDD 战术设计方法3. 重战术设计而轻战略设计4. DDD 只适用于微服务1. 基于领域模型2. 基于业务需求变化频率3. 基于应用性能4. 基于组织架构和团队规模5. 基于安全边界6. 基于技术异构等因素你知道的越多,你不知道的越多。原创 2023-10-24 16:11:47 · 260 阅读 · 0 评论 -
领域驱动设计:基于DDD的微服务设计实例
微服务内的对象清单:在确定各领域对象的属性后,我们就可以设计各领域对象在代码模型中的代码对象(包括代码对象的包名、类名和方法名),建立领域对象与代码对象的一一映射关系了。领域层:领域服务有查询审批规则、修改请假流程信息服务以及根据审批规则查询审批人服务,分别位于请假和人员组织关系聚合。请假单实体有修改请假流程信息方法,审批规则值对象有查询审批规则方法。要完成从领域模型到微服务的落地,还需要进一步的分析和设计。在事件风暴基础上,我们进一步细化领域对象以及它们的关系,补充事件风暴可能遗漏的业务和技术细节。原创 2023-10-24 16:10:23 · 497 阅读 · 1 评论 -
领域驱动设计:从后端到前端
微前端和业务单元化的设计模式可以减轻企业级中台,前后端应用开发和集成的复杂度,真正实现前端融合和中台解耦。原创 2023-09-14 21:30:00 · 203 阅读 · 0 评论 -
领域驱动设计:微服务的服务和数据的协作关系
1. 服务的类型2. 服务的调用3. 服务的封装与组合4. 两种分层架构的服务依赖关系你知道的越多,你不知道的越多。原创 2023-09-14 20:30:00 · 254 阅读 · 0 评论 -
领域驱动设计:微服务的各种边界
通过微服务的各种边界,我们可以让业务能力高内聚、代码松耦合,且清晰的边界,可以快速实现微服务代码的拆分和组合,轻松实现微服务架构演进。但有一点一定要格外注意,边界清晰的微服务,不是大单体向小单体的演进。原创 2023-09-13 21:00:00 · 178 阅读 · 0 评论 -
领域驱动设计:领域模型与代码模型的一致性
1. 设计实体2. 找出聚合根3. 设计值对象4. 设计领域事件5. 设计领域服务6. 设计仓储服务的封装和调用主要有以下几种方式:你知道的越多,你不知道的越多。原创 2023-09-13 21:00:00 · 275 阅读 · 0 评论 -
领域驱动设计:DDD设计微服务代码模型
微服务目录结构代码模型总目录结构关于代码模型还需要强调两点内容你知道的越多,你不知道的越多。原创 2023-09-12 22:30:00 · 320 阅读 · 1 评论 -
领域驱动设计:事件风暴构建领域模型
事件风暴是一项团队活动,领域专家与项目团队通过头脑风暴的形式,罗列出领域中所有的领域事件,整合之后形成最终的领域事件集合,然后对每一个事件,标注出导致该事件的命令,再为每一个事件标注出命令发起方的角色。命令可以是用户发起,也可以是第三方系统调用或者定时器触发等,最后对事件进行分类,整理出实体、聚合、聚合根以及限界上下文。而事件风暴正是 DDD 战略设计中经常使用的一种方法,它可以快速分析和分解复杂的业务领域,完成领域建模。原创 2023-09-12 22:00:00 · 325 阅读 · 0 评论 -
领域驱动设计:DDD重构中台业务模型
构建多业务域的中台业务模型的过程,就是找出同一业务域内所有同类业务的领域模型,对比分析域内领域模型和聚合的差异和共同点,打破原有的模型,完成新的中台业务模型重组或归并的过程。原创 2023-09-10 16:51:27 · 296 阅读 · 1 评论 -
领域驱动设计:DDD、中台和微服务的关系
中台是抽象出来的业务模型,微服务是业务模型的系统实现,DDD作为方法论可以同时指导中台业务建模和微服务建设,三者相辅相成,完美结合。原创 2023-09-10 16:50:29 · 461 阅读 · 0 评论 -
领域驱动设计:微服务架构模型
DDD 分层架构、整洁架构、六边形架构都是以领域模型为核心,实行分层架构,内部核心业务逻辑与外部应用、资源隔离并解耦。原创 2023-09-10 16:49:33 · 428 阅读 · 0 评论 -
领域驱动设计:DDD分层架构
微服务架构模型有好多种,例如整洁架构、CQRS 和六边形架构等等。每种架构模式虽然提出的时代和背景不同,但其核心理念都是为了设计出“高内聚低耦合”的架构,轻松实现架构演进。而 DDD 分层架构的出现,使架构边界变得越来越清晰,它在微服务架构模型中,占有非常重要的位置。原创 2023-09-09 18:21:16 · 870 阅读 · 0 评论 -
领域驱动设计:领域事件
领域事件是 DDD 的一个重要概念,在设计时我们要重点关注领域事件,用领域事件来驱动业务的流转,尽量采用基于事件的最终一致,降低微服务之间直接访问的压力,实现微服务之间的解耦,维护领域模型的独立性和数据一致性。在具体的业务场景,有的领域事件发生在微服务内的聚合之间,有的则发生在微服务之间,还有两者皆有的场景,一般来说跨微服务的领域事件处理居多。在微服务设计时不同领域事件的处理方式会不一样。除此之外,领域事件驱动机制可以实现一个发布方 N 个订阅方的模式,这在传统的直接服务调用设计中基本是不可能做到的。原创 2023-09-09 18:20:23 · 422 阅读 · 0 评论 -
领域驱动设计:DDD 关键概念
这里我需要说明一下:投保人和被保人的数据,是通过关联客户 ID 从客户聚合中获取的,在投保聚合里它们是投保单的值对象,这些值对象的数据是客户的冗余数据,即使未来客户聚合的数据发生了变更,也不会影响投保单的值对象数据。,它通常采用用例分析、场景分析和用户旅程分析等方法,通过头脑风暴列出所有可能的业务行为和事件,然后找出产生这些行为的领域对象,并梳理领域对象之间的关系,找出聚合根,找出与聚合根业务紧密关联的实体和值对象,再将聚合根、实体和值对象组合,构建聚合。值对象的代码形态:值对象在代码中有这样两种形态。原创 2023-09-09 18:18:36 · 283 阅读 · 0 评论 -
领域驱动设计:DDD与微服务的关系
是建立领域模型的主要方法,它是一个从发散到收敛的过程。事件风暴过程会产生很多的实体、命令、事件等领域对象,我们将这些领域对象从不同的维度进行聚类,形成如聚合、限界上下文等边界,建立领域模型,这就是一个收敛的过程。DDD 是一种处理高度复杂领域的设计思想,它试图分离技术实现的复杂性,并围绕业务概念构建领域模型来控制业务的复杂性,以解决软件难以理解,难以演进的问题。DDD 不是架构,而是一种架构设计方法论,它通过边界划分将复杂业务领域简单化,帮我们设计出清晰的领域和应用边界,可以很容易地实现架构演进。原创 2023-09-09 18:15:58 · 363 阅读 · 0 评论