DDD
文章平均质量分 56
VirtuousGuy
热爱Java编程,对大数据和分布式有浓厚兴趣的小白
展开
-
DDD从小白到入门
DDD终结篇总结一:微服务设计和拆分的原则微服务的演进策略:1、绞杀者策略:绞杀者策略是一种逐步剥离业务能力,用微服务逐步代替原有单体系统的策略,它对单体系统进行领域建模,根据领域边界,在单体系统之外,将新功能和部分业务能力独立出来,建设独立的微服务。新微服务与单体系统保持松耦合关系。随着时间的推移,大部分单体系统的功能将被独立为微服务,这样就慢慢绞杀掉了原来的单体系统。绞杀者策略类似建筑拆迁,完成部分新建筑物后,然后拆除部分旧建筑物。2、修缮者策略:修缮者策略是一种维持原有系统整体能力不变,逐步优原创 2021-01-20 09:27:03 · 449 阅读 · 2 评论 -
DDD从小白到入门
DDD实战篇四:基于DDD的微服务设计实例项目的基本信息:项目的目标是实现在线请假和考勤管理,功能描述如下:1、请假人填写请假单提交审批,根据请假人身份、请假类型和请假天数进行校验,根据审批规则逐级递交上级审批,逐级核批通过则完成审批,否则审批不通过退回申请人。2、根据考勤规则,核销请假数据后,对考勤数据进行校验,输出考勤统计战略设计:战略设计是根据用户旅程分析,找出领域对象和聚合根,对实体和值对象进行聚类组成聚合,划分限界上下文,建立领域模型的过程。战略设计主要包括:产品愿景、场景分析、领域建原创 2021-01-19 09:08:53 · 558 阅读 · 1 评论 -
DDD从小白到入门
DDD实战篇四:从后端到前端:微服务后端,前端如何设计?从单体前端到为前端:为了解决单体前端的问题,我们可以借鉴微服务的设计思想,引入微前端概念。将为服务理念扩展到前端,解决中台微服务化后,前端由于仍为单体而存在的的逻辑复杂和臃肿的问题。微前端:在前端设计时遵守单一职责和复用原则,按照领域模型和微服务边界,将前端页面进行拆分,同时构建多个可以独立部署、完全自治、松耦合的页面组合,其中每个组合只负责特定业务单元的UI元素和功能,这些页面组合就是微前端。微前端与微服务一样,都是将单体应用,按照规则拆分,原创 2021-01-18 09:37:36 · 374 阅读 · 1 评论 -
DDD从小白到入门
DDD实战篇三边界:微服务的各种边界在架构演进中的作用微服务设计的重点就是看微服务设计是否能够支持架构长期、轻松的演进。MartinFowler在提出微服务时,提到了微服务的一个重要特征–演进式架构。演进式架构就是以支持增量的、非破坏的变更作为第一原则,同时支持在应用程序结构层面的多维度变化.如何判断微服务设计是否合理?只需要看它是否满足这样的情形:随着业务的发展和需求的变更,在不断重新拆分或者组合成新的微服务的过程中,不会大幅度增加软件开发和维护的成本,并且这个架构演进的过程是非常轻松、简单的。使原创 2021-01-15 09:29:21 · 280 阅读 · 0 评论 -
DDD从小白到入门
DDD实战篇二代码模型(上):如何使用DDD设计微服务代码模型DDD分层架构模型: 1、用户接口层:面向前端提供服务适配,面向资源层提供资源适配。这一层接口适配相关的功能。 2、应用层职责:实现服务组合和编排,适应业务流程快速变化的需求。这一层聚集了应用服务和事件相关的功能。 3、领域层:实现领域的核心业务逻辑,这一层聚集了领域模型的聚合、聚合根、实体、值对象、领域服务和事件等 领域对象,以及它们组合所形成的业务能力 4、基础层:贯穿所有层,为各层提供基础资源服务。这一层聚原创 2021-01-13 09:49:08 · 1483 阅读 · 1 评论 -
DDD从小白到入门
DDD实战篇一1、如何用DDD重构中台业务模型传统核心应用与互联网电商两者在业务功能上的差异性主要体现在以下四个方面: 1、核心能力的重复建设。由于先手同质保险产品,两者在核心业务流程和功能上必然相似,因此在核心业务能力上存在功能重叠不可避免。 2、通用能力的重复建设。传统核心应用的通用平台大而全,通常会比较重。而互联网电商平台离不开这些通用能力的支撑,但为了保持敏捷开发, 一般会自己建设缩小版的通用功能,比如用户、客户等。这是通用能力的重复建设。 3、业务职能的分离建设。有一类原创 2021-01-12 09:10:59 · 509 阅读 · 0 评论 -
DDD从小白到入门
DDD进阶篇三1、 中台:将通用的公共能力独立为共享平台,是企业级能力复用平台阿里对中台的定义:中台是一个基础的理念架构,我们要把所有的基础服务用中台的思路建设,进行联通,共同支持上端业务。业务中台更多的是支持在线业务,数据中台提供了数据处理能力和很多的数据产品给所有业务方去用。业务中台、数据中台、算法中台等等一起提供对上层业务的支撑。前台:主要面向客户以及终端销售者,实现营销推广以及交易转化。中台后的前台建设要有一套综合考虑业务边界、流程和平台的整体解决方案,以实现各不同中台前端操作、流程和界面的联原创 2021-01-11 09:29:36 · 598 阅读 · 0 评论 -
DDD从小白到入门
DDD进阶篇二1、 DDD分层架构:有效降低层与层之间的依赖DDD四层架构: 1、用户接口层(用户界面、Web服务和其他)API、DTO(数据传输对象):用户接口层负责向用户显示信息和解释用户指令。 这里的用户可能是:用户、程序、自动化测试和批处理脚本 2、应用层(应用服务)Application Service:应用层是很薄的一层。主要面向用例和流程相关的操作,可以协调多个聚合的服务和领域对象完成服务编排和组合, 协作完成业务操作。应用层也是微服务之间交互的原创 2021-01-08 09:13:35 · 445 阅读 · 0 评论 -
DDD从小白到入门
DDD进阶篇一领域事件:解耦微服务的关键1、领域事件可以是业务流程的一个步骤,比如投保业务缴费完成后,触发投保单转保单的动作也可能是定时批处理过程中发生的事件,比如批处理生成季缴保费通知单或是一个事件发生后触发的后续动作,比如密码连续输错三次,触发锁定账户的动作。在领域模型映射到微服务系统架构时,领域事件可以解耦微服务,微服务之间的数据不必要求强一致性,而是基于事件的最终一致性。2、微服务内的领域事件:微服务内大部分事件的集成,都发生在同一个进程内,进程自身可以很好地控制事务,但一个事件如果同时更新多原创 2021-01-07 09:17:01 · 166 阅读 · 0 评论 -
DDD从小白到入门
领域驱动设计基础篇1、DDD简介DDD(Domain-Driven Design 领域驱动设计),DDD是一种设计思想,他可以同时指导中台业务建模和微服务设计。DDD强调的是领域模型和微服务设计的一致性。DDD 核心思想是通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。2、微服务设计采用领域驱动设计软件架构模式的演变大体来说经历了三个阶段:单机-两层架构(C\S架构): 采用面向过程的设计方法,系统包括客户端 UI 层和数据库两层,采用 C/S 架构模式原创 2021-01-05 18:53:37 · 847 阅读 · 1 评论