大约4年前,2017年底的时候,那时刚开始工作实习,武哥让我了解了解DDD,写了这篇Blog:【架构设计 领域驱动开发 一】三层VSDDD,当时打算好好了解了解的,无奈水平不够,对这些概念也是一知半解的,所以了解也不深入,见解也不一定正确,工作4年多了,再次学习和比较下MVC和DDD吧。概念和代码组织区别什么是贫血MVC模型开发?什么是DDD充血模型开发?MVC贫血模型开发模式MVC 三层架构中的
转载 2023-11-20 14:41:33
89阅读
DDD现在是指导代码编写,甚至是架构设计的思想,要详细了解DDD必须先了解“聚合根、实体、值对象”的含义,这块网上已经有不少相关文章,为了避免踩坑,博主推荐一篇:聚合根、实体、值对象一、界限上下文最近看了欧创新老师使用DDD拆分微服务的思想,感受
原创 2022-12-21 11:42:50
158阅读
tdd java 再次问好! 在上一篇博客文章中,我在没有紧密引用Java的情况下总体上解释了TDD理论 ,但是在这一部分中,我们开始进行TDD实践。 我们的目标是遍历TDD的所有阶段:从需求分析到测试代码的重构。 我们将在具有Java,JUnit和“ fake”需求的示例中完成所有这些工作。 需求分析 假设我们需要在一个虚构的应用程序中创建一个新功能。 以下用户故事描述了此功能: 作为用
转载 2023-07-14 17:21:13
60阅读
文章目录背景说明官网Github构造diff测试测试修改测试新增集合比较封装CRUD自定义比较器使用注解类级别@Entity@ValueObject@Value@DiffIgnore@ShallowReference@IgnoreDeclaredProperties@TypeName属性@Id@DiffIgnore@DiffInclude@ShallowReference@PropertyNam
转载 2023-10-19 19:32:36
163阅读
# DDD中的接口编程:面向接口编程的应用 在现代软件开发中,面向对象编程已经成为主流方法之一。而在软件架构设计中,领域驱动设计(Domain-Driven Design,DDD)作为一种指导原则,帮助开发者构建复杂的业务系统。其中,接口编程DDD中一个重要的概念,特别是在Java编程语言中,它能促进代码的灵活性和可维护性。 ## 什么是面向接口编程? 面向接口编程是一种编程范式,其中代码
原创 8月前
27阅读
Talking is easy, show me your code真正开始 DDD 旅程前,我想让您看到经过 DDD 设计之后的代码长啥样。我想,这是所有本着“talking is easy, show me your code”理念的程序员都比较在乎的观念。为此,我特别将“群买菜”生鲜电商系统服务端代码新旧代码结构都显示出来,让您看看原来的旧代码——也就是“事务脚本式”代码长啥样(应该是目前大
转载 2023-08-16 16:55:32
127阅读
DDD(domain driven design)领域驱动设计模型一、DP(domain primitive)1、什么是DP2.为什么要用DP2.1 API接口清晰度2.2 数据验证和错误处理2.3 业务代码的清晰度3.DP原则3.1 将隐性的概念显性化3.2 将隐性的上下文显性化3.3 封装多对象行为4. DP与DTO5.DP使用场景二、DDD架构推演传统三层架构(UI、业务层、基础设施层)1
转载 2023-07-21 22:24:17
218阅读
java常用框架总结Java杂谈ORM这是最后一篇Java杂谈了,以ORM框架的谈论收尾,也算是把J2ee的最后一方面给涵盖到了,之所以这么晚才总结出ORM这方面,一是笔者这两周比较忙,另一方面也想善始善终,仔细的先自己好好研究一下ORM框架技术,不想草率的敷衍了事。其实J2ee的规范指南里面就已经包括了一些对象持久化技术,例如JDO(Java Data Object)就是Java对象持久化的新规
转载 2023-11-30 16:18:28
52阅读
SOA与微服务架构参考:SOA架构和微服务架构的区别微服务架构 vs. SOA架构SOA 服务架构之简介及理解 领域驱动架构微服务系统的设计自然离不开DDD(Domain-Driven Design,领域驱动设计),它由Eric Evans提出,是一种全新的系统设计和建模方法。DDD事实上是针对面向对象分析和设计的一个扩展和延伸,对技术架构进行了分层规划,同时对每个类进行了策略和类型的划分。领域模
一.获取UUIDUUID uuid = UUID.randomUUID(); String str = uuid.toString(); // 去掉“-” String s = str.replaceAll("-", "");二.获取固定格式的时间字符串第一种 //获取当前时间对象 Date d = new Date(); //创建日期格式化类对象,”yyyy/MM/dd HH:mm:ss”是我
转载 2023-08-02 00:45:51
258阅读
DDD是一种成熟的软件设计方法,旨在确保领域专家和开发人员能够有效合作,创造出高质量的软件。 本文介绍咋将FP(函数式编程)应用于DDD的实现,使其既优雅又简洁。C4模型中,软件架构图分为四个层次:“系统上下文”、“容器”、“组件”和“代码”。 “组件”是构成容器的基本单位,也是本文描述的层次。 1 代码组织结构 随应用程序复杂性增加,管理这种复杂性的一种方法是根据应用程序的职责或关注点将其拆分。
原创 2024-08-21 23:31:50
29阅读
本文主要介绍如何通过DDD对微服务进行拆分,首先介绍了什么是DDD,通过从分析DDD的优势,到如何通过DDD进行业务拆分,并且在最后通过代码样例的方式,深入浅出的为读者介绍了DDD代码的核心实现。帮助大家进一步的了解DDD应该如何落地。
推荐 原创 2022-11-24 11:12:26
503阅读
接上篇《DDD 实战 (10):冲刺 1 战术之服务设计(下)及技术决策》后,我们接下来的重点,就是要展示真正的代码实现了。在本篇中,我将围绕 TDD(Test-driven development, 测试驱动开发)编程方法为核心,演示前面完成的相关 DDD 设计是如何落地的。在本篇中,我将首先介绍 TDD 三重奏(写测试-写功能-重构)和相关原则,然后用实际代码演示 TDD 的工作流程,最后我会
转载 2024-05-08 17:53:54
217阅读
Java中的Drag and Drop详解与代码示例 我最近对对Java中的Drag and Drop做了一个总结, 觉得大致可以通过两种方法实现Drag and Drop: 1.比较初级的D&D:只利用java.awt.datatransfer.*中的类实现. 2.高级D&D: 利用javax.awt.dnd.*中的类实现. 比较初级D&D:只利用java.awt
转载 2023-10-14 19:03:14
76阅读
转载1.一个微服务+DDD(领域驱动设计)的代码结构示例
原创 2022-06-27 11:25:49
209阅读
引言领域驱动设计(Domain Driven Design,DDD)这个概念最近几年非常火,笔者在最近一段时间对相关内容进行阅读,总体下来感觉这个概念有点大,动不动就要高屋建瓴,大刀阔斧的进行战略设计。同时相关的代码实现大部分是java实现的,无法参考其落地实现。一、微服务设计为什么需要DDD在单机和集中式架构这两种模式下,软件无法快速响应需求和业务的迅速变化,最终错失发展良机。分布式微服务的出现
1.从上面2张图,可以直观的看出来,ddd可以调用的程度更大,上层可以直接调用下层的 全部层2.直接分析,ddd每层 都 放什么东西,和mvc的 放法有什么区别,知道了ddd每层放什么,又知道了每层 可以调下面 所有层,那么写代码,建立的包放哪,怎么建包,以及 哪个包 可以 调 哪些包的内容,就知道了,就可以放心写代码了,就行了DDD 代码架构层次上分为四层 • api:用户接口层,向外提供服务
转载 2023-09-15 15:27:25
175阅读
Aggregate Framework概述Aggregate Framework是为方便开发人员运用DDD和CQRS思想来构建复杂的、可扩展的Java企业应用系统而提供的Java技术框架。该框架提供了Aggregate、Repository、Domain Event等构建块的实现;使用DomainEvent,借助于内建的Disruptor组件,AggregateFramework可使开发人员方便的
DDD】领域驱动设计实践 —— 框架实现目录【DDD】领域驱动设计实践 —— 框架实现1. 框架实现图2. 框架详述User Interface层dtocontrollerapplication层serviceassemblerdomain层domain entitydomain value objectdomain factorydomain servicedomain eventreposi
作者:张晓龙引言在讨论DDD分层架构的模式之前,我们先一起回顾一下DDD和分层架构的相关知识。DDDDDD(Domain DrivenDesign,领域驱动设计)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。在正确实现的情况下,我们通过DDD完成的设计恰恰就是软件的工作方式。UL(Ubiquitous Language,通用语言)是团队共享的语言,是DDD中最具威力的特性之一。不管你在
转载 2024-07-24 15:45:47
98阅读
  • 1
  • 2
  • 3
  • 4
  • 5