在开源中国里,不知道大家有没有留意到一个Java开源组织——Dromara?这个组织是由 Apache ShenYu(前身是Soul网关)作者创立,多位 Java 开源作者参与一个Java开源组织。在开源中国社区,很多 Java 开源作者都是各自为战,独立运营项目。Domara 组织诞生就是为了联合 Java 开源力量,共建社区,资源共享,共同推行中国Java开源事业发展。目前 Drom
转载 2023-08-16 16:50:21
1185阅读
## DDD(领域驱动设计)在Java实现 领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,它强调通过对领域深入理解来构建软件系统。在DDD中,设计和开发关键是关注领域模型和业务需求,而不是过于依赖技术细节。本文将介绍DDD基本概念,并用Java语言实现一个简单示例。 ### DDD基本概念 1. **领域(Domain)**:系统所处
原创 2024-08-13 07:18:21
109阅读
目录0、代码目录1、接口层(interfaces层)1.1、利用组装器assembler实现DTO与DO转换1.2、编写RestfulAPI接口,类似controller编写2、应用层(application层)3、领域层(domain层)3.1、聚合根、实体、值对象3.1.1、聚合根3.1.2、实体3.1.3、值对象3.2、领域服务3.3、仓储实现3.4、领域事件4、基础层(infrastr
转载 2023-07-11 23:46:19
2577阅读
JavaDrag and Drop详解与代码示例 我最近对对JavaDrag 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阅读
引言领域驱动设计(Domain Driven Design,DDD)这个概念最近几年非常火,笔者在最近一段时间对相关内容进行阅读,总体下来感觉这个概念有点大,动不动就要高屋建瓴,大刀阔斧进行战略设计。同时相关代码实现大部分是java实现,无法参考其落地实现。一、微服务设计为什么需要DDD在单机和集中式架构这两种模式下,软件无法快速响应需求和业务迅速变化,最终错失发展良机。分布式微服务出现
  由于软件系统中可能有着不同数据库,不同ORM,仓储思想本质是解耦它们。在ABP中具体实现仓储接口定义在领域层,实现在基础设施层。仓储接口被领域层(比如领域服务)和应用层用来访问数据库,操作聚合根,聚合根就是业务单元。这篇文章主要分析怎么通过规约将业务逻辑从仓储实现中剥离出来,从而让仓储专注于数据处理。一.业务需求还是以Issue聚合根为例,假如有个业务规则是:判断是否是未激活Issu
转载 2024-04-25 11:05:36
102阅读
总结DDD就是个方法论,有点类似设计模式。总体需要面向接口编程。把业务和具体三方实现、技术统统隔离开来。可以照着方法论设计出符合开闭原则程序。降低新迭代开发成本。减少维护成本。传统MVC就是1张表对应1个实体对应1个DAO对应一个service。DDD拆service,不同逻辑不要放一起,service按领域分、按功能分,不同service满足单一职责。领域下service随时可以拉出去
转载 2023-08-30 18:07:51
133阅读
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阅读
一.获取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四层架构1、用户接口层:负责用户显示信息和接受用户指令,包含:用户、程序、自动化测试、批处理等2、应用层:理论上不应该有业务规则或逻辑,主要面向用例和流程相关操作,由于领域层之上,所以包含了多个聚合,可以协调多个聚合服务和领域对象完成服务编排和组合。负责处理业务用例执行顺序和结果拼装,例如:安全认证,权限校验,事务控制,发送或者订阅领域事件3、领域层:领域层主要体现领域模型业务能力
转载 2023-09-30 09:39:23
103阅读
上一篇文章我们讲了经典DDD架构对比传统三层架构优势,以及经典DDD架构每一层职责后,本篇文章将介绍基础结构层中支持DDD轻量级框架主要代码。这里需要说明是,DDD轻量级框架能够体现DDD思想即可,没必要做得很重,你也可以根据理解,自己实现支持DDD框架。1.实体、聚合根与值对象顶层体现实体顶层定义:public interface IEntity { st
转载 2023-10-30 20:32:31
46阅读
接上篇《DDD 实战 (10):冲刺 1 战术之服务设计(下)及技术决策》后,我们接下来重点,就是要展示真正代码实现了。在本篇中,我将围绕 TDD(Test-driven development, 测试驱动开发)编程方法为核心,演示前面完成相关 DDD 设计是如何落地。在本篇中,我将首先介绍 TDD 三重奏(写测试-写功能-重构)和相关原则,然后用实际代码演示 TDD 工作流程,最后我会
转载 2024-05-08 17:53:54
217阅读
# Java DDD(领域驱动设计)实现指南 领域驱动设计(Domain-Driven Design, DDD)是一种以复杂领域模型为中心设计和开发方法。本文将帮助刚入行开发者了解如何在Java实现DDD,并通过清晰步骤和代码示例来阐述。我们将使用以下表格呈现整个流程: | 步骤 | 描述 | |------|--------------------
原创 8月前
21阅读
# JavaDDD实现 ## 概述 领域驱动设计(Domain-Driven Design,简称DDD)是一种软件开发方法论,旨在帮助开发者更好地理解和解决复杂领域中问题。在实际开发过程中,合理地应用DDD能够使代码更加可维护、易于扩展,并且更好地满足实际需求。 本文将通过Java语言,结合代码示例,介绍如何在实际项目中应用DDD,以及如何使用DDD相关工具和框架来实现领域驱动设计。
原创 2023-12-26 08:14:14
88阅读
背景下文将会描述一些笔者在领域服务实体建模一些心得,在此之前,如果对于 DDD 没有了解读者可能会对一些名词迷惑不解。关于我们团队 DDD 落地实践 可以从以下文章了解。https://www.jianshu.com/p/7b5d8dc565d3四色建模法领域模型是描述业务用例实现对象模型。它是对业务角色和业务实体之间应该如何联系和写作以执行业务一种抽象。 当我们要将 DDD 落地时,可
简单代码!踢足球很简单,难是踢简单足球。— 克鲁伊夫如果我们将这句话用到编程上,我们可以说;写代码很简单,难是写简单代码。什么是领域驱动设计?领域驱动设计(DDD)是一种软件开发方法,通过将实现结合不断发展模型来满足复杂需求。DDD适用于复杂领域和大规模应用程序,而不是简单CRUD应用程序。它专注于核心领域逻辑,而不是基础设施细节。它有助于构建灵活、模块化和可维护代码库。OO
导语:今天开始准备每天将自己学习Java笔记也发出来,和一样刚开始学习Java同学交流。如有错误,希望大家不吝自己手指批评指正,谢谢。1.1软件开发 1.软件开发:特定顺序组织计算机数据和指令集合。分为系统软件和应用软件。 2.人机交互方式: 图形化界面(Graphical User Interface,GUI) 命令行方式(Command Line Interface,CLI) 3.
# 如何在 Java实现 DDD 代码源码 领域驱动设计(DDD)是一种软件设计方法论,强调对于复杂问题领域深刻理解,从而构建出可维护、可扩展软件系统。对于刚入行小白来说,理解 DDD 概念和实践是非常重要。接下来,我将通过一系列步骤,教你如何在 Java实现 DDD。 ## 实现 DDD 步骤 以下是实现 DDD 源码基本步骤: | 步骤 | 描述
原创 10月前
31阅读
Java基础综合练习案例案例:评委打分以下是案例需求: 在编程竞赛中,有6个评委为参赛选手打分,分数为0-100整数分。 选手最后得分为:去掉一个最高分和一个最低分后 4个评委平均值 (不考虑小数部分)。然后我们可以写一个写代码思路,通常要从一个小白入门Java这门语言的话在写代码时候就要先想好一个程序思路,然后根据你思路来写这样的话就会养成一个好习惯,对后来学习有很大帮助。
  • 1
  • 2
  • 3
  • 4
  • 5