引言 | 本文作者从微信团队维护的带货类项目所遇卡点出发,尝试用领域驱动设计方法(简称DDD),保障在快节奏、多人协作的项目迭代中,维持系统的可维护性、可拓展性、高内聚低耦合和稳定性。作者首先剖解相关概念原理,之后代入亲身参与的微信团队实际项目、围绕DDD方法进行优化实操。DDD 全称 Domain-Driven Design,中文叫领域驱动设计,是一套应对复杂软件系统分析和设
1 前言实体是领域模型中的领域对象。官方解释:实体是指描述了领域中唯一的且可持续变化的抽象模型。通常建模时:名词用于给概念命名形容词用于描述这些概念而动词则表示可以完成的操作白话解释:实体就是对象的方法和属性实现业务逻辑的类,一般由唯一标识id和值对象组成,属性发生改变,可影响类的状态和逻辑。MVC开发人员总将关注点放在数据,而非领域。因为在软件开发中,DB占据主导地位。他们首先考虑数据的属性(即
转载 2024-08-01 21:03:17
69阅读
# 如何实现 DDD 架构完整项目(Java)并在 GitHub 上发布 领域驱动设计(DDD)是一种软件开发方法,旨在通过将复杂问题分解为领域模型,从而更好地理解和解决业务问题。本文将指导你如何使用 DDD 架构构建一个 Java 项目并在 GitHub 上发布。 ## 流程概述 下面是实现 DDD 架构完整项目的步骤表: | 步骤 | 描述
原创 7月前
112阅读
      3D目标检测的主要应用场景是自动驾驶,虽然现阶段基于点云的3D检测的性能不断提升,但相比于激光雷达高昂的成本以及在复杂天气下的敏感性,研究人员将目光投向了基于单目视觉的方案,因此单目3D检测逐渐成为了研究热点。      DD3D是一个end-to-end、单阶段的基于单目视觉的3D检测模型,由于不靠点云,精度远不及多模态,但
DDD
原创 2021-12-15 15:42:48
281阅读
整洁架构、CQRS、六边形架构等微服务架构都旨在“高内聚低耦合”。那DDD分层架构又如何?1 DDD分层架构1.1 分层架构的基本原则每层只能与位于其下方的层发生耦合。1.2 分层架构的...
转载 2021-07-17 10:08:26
925阅读
---------------------领域驱动(DDD,Domain Driven Design)为软件设计提供了一套完整的理论指导和落地实践,通过战略设计和战术设计,将技术实现与业务逻辑分离,来应对复杂的软件系统。本系列文章准备以实战的角度来介绍 DDD,首先编写领域驱动的代码模型,然后再基于代码模型,引入 DDD 的各项概念,先介绍战术设计,再介绍战略设计。> DDD 实战
整洁架构、CQRS、六边形架构等微服务架构都旨在“高内聚低耦合”。那DDD分层架构又如何?1 DDD分层架构
转载 2021-07-09 10:06:29
529阅读
本篇开始我们对“群买菜”首个冲刺的战术设计进行描述。上篇《DDD 实战 (7):战术设计、整体流程与首次冲刺》中,我们已经识别了首个冲刺的 14 个业务用例和 23 个服务契约的识别,并分别给出了相应的业务用例规约和服务契约设计。下面我们分两篇来分别完成:1)按照 14 个业务用例规约完成聚合设计;2)按照 23 个服务契约,在聚合设计的基础上,完成服务设计(含应用服务、领域服务);3)作为首个冲
转载 2024-09-27 20:59:34
42阅读
一、DDD分层架构        DDD分层架构中有很重要的依赖原则:每层只能与位于下方的层发生耦合,类似于网络的7层或TCP/IP的4层模型架构,每一层各司其职,并且只关心向下一层的实现,而不会出现各层耦合。        DDD分层架构中包含四层:从上到下分别是用户接口层,应用层,领域层和基础层
转载 2021-05-31 12:16:00
201阅读
引言相信通过前面几篇文章的介绍,大家对于 DDD 的相关理论以及实践的套路有了一定的理解,但是理解 DDD 理论和实践手段是一回事,能不能把这些理论知识实际应用到我们实际工作中又是另外一回事,因此本文通过实际的业务分析把之前文章中涉及的理论和手段全部带着大家走一遍,我想通过这种方式,让大家实际的感受下 DDD 落地过程中会遇到哪些问题以及我们应该怎样去解决这些问题。项目需求信息这里还是大家比较熟悉
背景我们经常会面对这样的情况:自己所开发维护的系统,遍地都是面条代码,一个方法上千行,根本无法维护。每天面对 shit 一样的代码,痛不欲生。导致开发同学普遍有这样的困惑:怎么避免写这种流水账代码?纯业务开发同学技术上如何成长? 架构师同样也困惑:在开发中如何降低软件、系统复杂度?DDD(领域驱动设计)就能药到病除,它真正从业务的角度出发,为做纯业务的开发提供了一整套的架构思路。由于 DDD 不是
轻量级快速开发框架
原创 2022-08-29 22:39:23
586阅读
附源码案例
三. 架构演进及DDD架构     近些年来,软件系统架构的发展非常迅速,历经了单体,SOA,微服务等多个框架。笔者在本节做一个简单梳理,并引出领域驱动设计的架构理念。架构起什么作用     首先,我们简单思考一下为什么要有架构?其主要作用是什么? 系统架构定义其组成要素和关系:要素 是 组成架构的重要元素 (Buil
一、DDD是什么DDD是Eric Evans 于2004年提出的一种软件设计方法,Domain Drive Design,简称DDD,在软件设计领域被广泛应用。DDD的核心思路是强调“领域”在软件设计的作用,领域是有边界的、有重点的、可划分的,它是对一定范围内业务事实的抽象,与技术实现无关。划定领域有如下好处:1、领域限定了问题空间,定义了通用语言,使得业务讨论更好聚焦,不会跑偏。2、领域模型将技
DDD的设计思想它本身不绑定到任何一种具体的架构风格,可以应用在多种不同的架构风格中。本文探讨在经典的分层架构中如何应用DDD,以及在DDD的语境下,分层结构每一层的具体职责。分层架构是企业应用开发中采用率非常高的一种架构风格。它将软件系统的不同职责划分到不同的逻辑层中,并严格定义这些逻辑层的调用顺序。在《领域驱动设计——软件核心复杂性的应对之道》一书中,DDD范式的创始人Evans提出下图所示的
引言 在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识。 DDDDDD(Domain Driven Design,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式。UL(Ubiquitous Language,通用语言)是团队共享的语言,是DDD中最具威力的特性之一。不管你
分层架构:有效降低层与层之间的依赖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) 文章目录领域驱动模型(DDD)1. 简介2. 一些基本概念实体(entity)值对象(value object)聚合及聚合根(aggregate、aggregate root)工厂(factories)仓储(repositories)服务(services)domain事件DTO 1. 简介领域驱动模型/领域驱动设计(简称 ddd)概念开源于2004年著名建模专家eric
  • 1
  • 2
  • 3
  • 4
  • 5