燃气抄表计费场景每月末,燃气公司制定抄表计划并批量生成抄表任务,抄表任务通过工单的形式下发到抄表人员到客户现场抄表,抄表完成之后给客户应收账单,客户可以现场缴费或者延后通过在线自助缴费。下面以此案例描述建模步骤。1 描述业务场景用5W2H进行分析:用户(WHO)在什么环境(WHERE)下遇到什么时机(WHEN)因为什么(WHY)产生什么目标(WHAT),继而通过什么方法(HOW)去达成目标。大部分
转载
2023-07-19 10:46:33
146阅读
目录一、什么是微服务二、微服务架构的优缺点三、微服务架构的误区 四、领域与领域模型五、通用语言与界限上下文六、实体类与值对象七、聚合与聚合根八、领域服务与应用服务一、什么是微服务 传统的软件项目大部分都是单体结构,也就是项目中的所有代码都放到同一个应用程序中,一般它们也都运行在同一个进程中。单体结构的项目有结构简单、部署简单等优点,但是
转载
2024-05-29 00:58:33
175阅读
一、DDD分层架构 DDD分层架构中有很重要的依赖原则:每层只能与位于下方的层发生耦合,类似于网络的7层或TCP/IP的4层模型架构,每一层各司其职,并且只关心向下一层的实现,而不会出现各层耦合。 DDD分层架构中包含四层:从上到下分别是用户接口层,应用层,领域层和基础层
转载
2021-05-31 12:16:00
201阅读
模式一:四层架构 1.User Interface为用户界面层(或表示层),负责向用户显示信息和解释用户命令。这里指的用户可以是另一个计算机系统,不一定是使用用户界面的人。 2.Application为应用层,定义软件要完成的任务,并且指挥表达领域概念的对象来解决问题。这一层所负责的工作对业务来说意义重大,也是与其它系统的应用层进行交互的必要渠道。应用层要尽量简单,不包含业务规则或者知识,而只为下
转载
2023-12-16 20:53:25
96阅读
我们把三层架构等除了领域驱动之外的架构方式都可以归纳为以数据为中心的架构方式,在图中是黑色的粗实线;领域驱动设计在图中是绿色的粗实线。当软件在开发初期,以数据驱动的架构方式非常容易上手,但是随着业务的增长和项目的推进,软件开发和维护难度急剧升高。领域驱动设计则在项目初期就处在一个比较难以上手的位置,但是随着业务的增长和项目的推进,软件开发和维护难度平滑上升。这幅图形象的解释了领域驱动设计和传统的软
转载
2023-12-07 00:21:07
200阅读
1 前言实体是领域模型中的领域对象。官方解释:实体是指描述了领域中唯一的且可持续变化的抽象模型。通常建模时:名词用于给概念命名形容词用于描述这些概念而动词则表示可以完成的操作白话解释:实体就是对象的方法和属性实现业务逻辑的类,一般由唯一标识id和值对象组成,属性发生改变,可影响类的状态和逻辑。MVC开发人员总将关注点放在数据,而非领域。因为在软件开发中,DB占据主导地位。他们首先考虑数据的属性(即
转载
2024-08-01 21:03:17
69阅读
所做的系统是一个连接到外部信息发送和搜索引擎调用服务的Web前端系统。系统与外部的接口使用的是一层Service外观进行包装,原先的设计目的是使用服务层剥离对外部系统的强依赖──解耦,同时还希望使用Service将系统的商业逻辑集中存放──提高复用的可能。但是实际上我们发现Service这样的抽取方法并没有提高代码的复用度,反而造成数据结构和其算法的大量重复。经过分析,发现由于使用了大量的Hash
转载
2024-06-06 14:03:55
44阅读
这几天在为实习作准备,打算系统地重新学一下java基础。这里是我在看《Java核心技术卷I》的时候记下的一些小点,比较杂乱,但是也有一定的参考价值,放在这里给后来者和自己以后参考。 如有纰漏敬请指教!java的“大数值”(big number)是一个Java对象,能够表示任意精度的值用Double.isNaN()来判断是否为not a number,其他方法类似\n换行 \r回车声明一个变量之后必
转载
2024-09-20 06:49:01
18阅读
三. 架构演进及DDD架构 近些年来,软件系统架构的发展非常迅速,历经了单体,SOA,微服务等多个框架。笔者在本节做一个简单梳理,并引出领域驱动设计的架构理念。架构起什么作用 首先,我们简单思考一下为什么要有架构?其主要作用是什么? 系统架构定义其组成要素和关系:要素 是 组成架构的重要元素 (Buil
转载
2023-08-31 17:23:01
200阅读
DDD的设计思想它本身不绑定到任何一种具体的架构风格,可以应用在多种不同的架构风格中。本文探讨在经典的分层架构中如何应用DDD,以及在DDD的语境下,分层结构每一层的具体职责。分层架构是企业应用开发中采用率非常高的一种架构风格。它将软件系统的不同职责划分到不同的逻辑层中,并严格定义这些逻辑层的调用顺序。在《领域驱动设计——软件核心复杂性的应对之道》一书中,DDD范式的创始人Evans提出下图所示的
转载
2023-11-11 07:43:11
259阅读
一、DDD是什么DDD是Eric Evans 于2004年提出的一种软件设计方法,Domain Drive Design,简称DDD,在软件设计领域被广泛应用。DDD的核心思路是强调“领域”在软件设计的作用,领域是有边界的、有重点的、可划分的,它是对一定范围内业务事实的抽象,与技术实现无关。划定领域有如下好处:1、领域限定了问题空间,定义了通用语言,使得业务讨论更好聚焦,不会跑偏。2、领域模型将技
转载
2023-08-07 23:43:44
148阅读
引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识。 DDDDDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式。UL(Ubiquitous Language,通用语言)是团队共享的语言,是DDD中最具威力的特性之一。不管你
转载
2023-08-16 16:52:04
145阅读
分层架构:有效降低层与层之间的依赖1. 写在前面2. 什么是DDD分层架构?2.1 用户接口层2.2 应用层2.3 领域层2.4 基础层3. DDD 分层架构最重要的原则是什么?4. DDD 分层架构如何推动架构演进?4.1 微服务架构的演进4.2 微服务内服务的演进5. 三层架构如何演进到 DDD 分层架构?6. 小结 1. 写在前面社会在进步,软件系统也在不断演进,越来越多的开发团队引入微服
转载
2023-07-14 17:23:48
159阅读
# DDD架构的Java Demo:深入理解领域驱动设计
领域驱动设计(DDD)是一种软件开发方法论,它帮助开发团队更好地理清业务领域与代码之间的关系。在这篇文章中,我们将使用Java进行一个简单的DDD项目示例,以帮助您理解这种架构的基本概念。
## DDD的基本概念
DDD强调模型的创建,需要与领域专家紧密合作,以确保模型准确反映业务需求。DDD的核心概念包括:
1. **实体(Ent
# DDD架构的不足与实践
领域驱动设计(Domain-Driven Design,缩写为DDD)是一种软件开发的方法论,旨在通过以领域为中心的模型,帮助开发者构建复杂的业务应用。尽管DDD在许多项目中取得了显著的成功,但它并不是完美无缺的,实际上有一些不足之处。在本文中,我们将探讨DDD架构的不足,并通过代码示例和图表加以说明。
## DDD架构的概述
在深入不足之前,先简要回顾一下DDD
原创
2024-10-11 07:15:00
71阅读
领域驱动模型(DDD) 文章目录领域驱动模型(DDD)1. 简介2. 一些基本概念实体(entity)值对象(value object)聚合及聚合根(aggregate、aggregate root)工厂(factories)仓储(repositories)服务(services)domain事件DTO 1. 简介领域驱动模型/领域驱动设计(简称 ddd)概念开源于2004年著名建模专家eric
转载
2023-10-08 23:59:34
134阅读
大家好,我是易安!今天我们聊下DDD分层架构微服务架构模型有好多种,例如整洁架构、CQRS和六边形架构等等。每种架构模式虽然提出的时代和背景不同,但其核心理念都是为了设计出“高内聚低耦合”的架构,轻松实现架构演进。而DDD分层架构的出现,使架构边界变得越来越清晰,它在微服务架构模型中,占有非常重要的位置。首先我们讲下前面这几种架构模型,再来探讨下DDD分层架构。整洁架构 整洁架构又名“洋葱架构”。
转载
2023-08-08 09:34:26
152阅读
DDD架构 文章目录DDD架构1. DDD分层架构2. 四层模型总结 1. DDD分层架构DDD(领域驱动设计)由Eric Evans最先提出,目的是对软件所涉及到的领域进行建模,以应对系统规模过大时引起的软件复杂性的问题。从领域知识中提取和划分一个一个的子领域(核心子域,通用子域,支撑子域)并在子领域上建立模型,再重复以上步骤,这样周而复始,构建出一套符合当前领域的模型。
依靠领域驱动设计的思
转载
2023-08-16 16:49:08
203阅读
贫血模型:MVC (Model View-Controller)——反模式(anti-pattern)充血模型:DDD 领域驱动设计(Domain Driven Design,简称 DDD)MVC贫血模型MVC 三层架构中的 M 表示 Model,V 表示 View,C 表示 Controller。它将整个项目分为三层:展示层、逻辑层、数据层。现在很多 Web 或者 App 项目都是前后端分离的,
转载
2023-06-13 21:38:13
487阅读
如何理解领域和子域?领域领域是用来限定业务边界和范围的,这也是 DDD 在设计中不断强调边界的原因。在研究和解决业务问题时,DDD 会按照一定的规则将业务领域进行细分,当领域细分到一定的程度后,DDD 会将问题范围限定在特定的边界内,在这个边界内建立领域模型,进而用代码实现该领域模型,解决相应的业务问题。简言之,DDD 的领域就是这个边界内要解决的业务问题域。子领域领域可以进一步划分为子领域。我们
转载
2023-11-02 06:05:31
63阅读