DDD实体模型

     

UUID7与UUID4简单比较

111

UUID(通用唯一标识符)是一种用于标识信息的标准化方法。UUID版本4是最常见的UUID版本,它基于随机数生成。UUID 版本 4 是什么?UUID 是通用唯一标识符的缩写,是一个 128 位标识符.

如何为ORM胖领模型减肥?

36 7K

ORM 以及保存数据的方式可以显着影响您的设计并导致胖域模型。数据很重要,但捕获数据的方式可能会引导您走上一条需要意识到您所做的妥协的道路。我将展示一个示例,说明并非所有数据都是平等创建的。当您考虑一.

Rust中标记类型

75 5K

在Rust中,"marker types"(标记类型)是一种特殊的类型,它们通常没有具体的数据,而是用于在编译时传达一些关于类型的信息,或者为了满足特定的 trait 约定。这些类型通常被称为“标记类.

数据库主键三种唯一标识符比较

109 3K

本文讨论了在数据库模式中使用自动递增整数键和 UUID 作为主键之间的权衡。文章提议了第三种专有方案,即时间排序唯一标识符(TSID)。以下是三种方案总结:自动递增整数键方案:具有出色的性能和按时间排.

如何将将 ER 图简化为数据表结构?

248
数据库可以使用符号来表示,并且这些符号可以简化为表的集合。在数据库中,每个实体集或关系集都可以用表格形式表示。ER图如下:将ER图转换成表格有几点: 实体类型变成表。 在给定的 ER 图中,LECTU.

Sqids:根据数字生成简短的唯一ID

525 1 3K

Sqids (发音为“squids”)是一个开源库,可让您根据数字生成简短的唯一 ID,类似 YouTube 的 ID。这些 ID 很短,可以从自定义字母表生成,并且保证无冲突。例如:https://.

业务规则和验证的区别?

238 1 4K

将业务规则与琐碎的验证相混淆,将不会带来任何好处。当你所拥有的只是琐碎的验证时,不要把事情复杂化。让我们立即从一个非常简单的代码示例开始。这是一个有两个条件的单一方法。 第一个是,如果数量参数小于或等.

大语言模型如何在上下文中绑定实体?

89

心理学家长期以来一直在研究绑定问题:人类如何将一个对象的特征识别为与该对象绑定,而不是与其他对象绑定?现代大模型LM毫不费力地解决了这些任务。当给出 "绿色正方形 "和 "蓝色圆形 "的上下文时,语言.

从贫血领域模型重构为充血领域模型

388 11K

贫血领域模型是一个没有任何行为、只有数据属性的领域模型。缺血(贫血、失血)领域模型在简单的应用程序中工作得很好,但如果您有丰富的业务逻辑,它们就很难维护和发展。业务逻辑和规则的重要部分最终分散在整个应.

什么是领域驱动设计?它是如何工作的?

162

与业务领域无缝集成的软件能为企业带来一系列强大的优势。它可以简化操作,增强以用户为中心的功能,并为利益相关者提供实时洞察力,以便快速做出深思熟虑的决策。DDD 是一种软件开发方法,擅长在领域专家和开发.

GitHub - kciter/thing: 一个用 Kotlin 编写的基于规则的实体管理库

432 5K

该Github项目能够实现各种校验、数据格式转换和过滤转换等各种业务规则的处理。验证:使用Validation验证输入的错误数据,过滤掉不良数据。例如,您可以验证电子邮件字段。data class P.

谨慎使用 jpa 关系 - felixs

896 3K

这篇博文的灵感来自于我为我的上一个客户所做的工作,该客户想要模块化他的单体,但有数百个实体的复杂混乱。我们开始消除模块之间的循环依赖,这种依赖特别是由于 jpa 关系及其对服务层的影响而发生的。这篇博.

使用设计模式实现实体中多个依赖属性的验证模块

1081 14K

有没有想过如何对属于具有多个依赖属性的实体的 API 请求/响应执行验证?在这种情况下可以执行什么类型的验证?使用什么设计模式?如何构建代码?底层设计应该是什么样的?如何使代码和设计具有可扩展性以适应.

领域驱动设计中的聚合模式 | by Alexey Zimarev

1519 2

聚合Aggregate模式可能是领域驱动设计 (DDD) 中最重要的战术模式。本质上,它可以这样描述:聚合是可以被视为单个单元的域对象的集群。这意味着聚合中的对象密切相关,并且出于数据更改的目的被视为.

从代码战术角度解释领域驱动设计 - Cyrille

1720 1 10K
在您当前的应用程序中,您的业务逻辑有多复杂?它的范围可能从微不足道到极其复杂。人们不应该为一个微不足道的问题使用复杂的工具。我们大多数人,包括我自己,都习惯于编写所谓的事务脚本。我们编写一个控制器来处.

为什么用静态工厂替代构造函数?

1309 1

为什么我们不能再有正常的、简单的构造函数呢?每个JDK的新功能都会使用那些恼人的 "of(value)"、"newAbcd()"、"of()"。在某些情况下,我同意需要使用它,例如接口(Path.of.

建模:标识字段 - Dan

1329 1 2K

本文的目标是研究一种特定类型的字段 —记录业务标识符。其目的是唯一标识一个记录的实例。信息系统的用户应该了解或访问该值。该值用于启动或停留在处理它标识的特定记录实例的任何业务流程的“快乐路径”上。注意.

建模经验:产品、客户、销售和位置的记录设计 - Dan

1551 4K

本文讨论了支持product、customer、sale和location 概念的记录类型。这些记录的名称因组织所处的业务线而异,特别是组织的销售流程。与产品有关的记录在本系列文章中,产品的概念在第三.

如何从Spring之外的非托管对象访问 Spring Bean?

1180 1 5K

实体、值对象、DTO或VO、record之类基本都是只有getXX/setXX的对象(record除外),当DDD领域设计为这些对象赋予业务行为以后,这些业务行为会与技术环境如Srping管理的bea.

重构 001 - 删除Java的Setter方法

971 4K

Setter方法违反了不变性并添加了意外耦合!重构步骤:找到 setter 的用法如果您正在设置基本属性,请将它们移动到构造函数并删除该方法如果你需要改变一个偶然的属性,它不是一个 setter。删除.

实体本身或实体之间关系哪个更重要? - scientificamerican

1671 1

量子力学激发我们推测实体之间的相互作用关系,而不是实体本身,实体的属性是因为实体相互作用才获得定义。事物到底是由什么组成的?谁创造的?超自然者认为是上帝,物理学家认为一切都源于一个单一的原始力或粒子,.

重构贫血模型提高代码的DDDness - Alexander

1349 1 9K

这是一个实用指南:结合DDD和OOP展示如何通过封装构建意图暴露一个类的API?这篇博文中的所有代码都可以在这里找到。对我来说,DDD 就是构建意图揭示 API。它关于将业务概念和规则封装在对象中,也.

领域驱动设计:实体、值对象以及如何区分? - jannikwempe

3697 2 2K
DDD 可以分为战略设计和战术设计,其中战术设计是关于 DDD 的构建块。这篇文章将介绍 DDD 的基本构建块:实体和值对象 (VO)。实体和 VO 是 DDD 中表达模型的两个构建块。它们是领域驱动.

高内聚的启发式含义?

776 1

“一个实体在内聚上最通用含义是:当其各部件之间的因果相互作用强于部件与其环境之间的因果相互作用时” ... 来自动力系统理论“An entity is _cohesive_ in the most g.

DDD实体值对象的equals和hashcode方法实现 - wimdeblauwe

1450 9K

Java中的所有类均继承自java.lang.Object,它有equals()和hashCode()方法,这两个方法是你定义自己的类时通常应该重写两个重要方法。equals()比较两个个对象以检查它.

Spring Boot DTO示例:实体到DTO的转换

10477 5 4K

在本教程中,我们将学习如何在Spring Boot应用程序中创建DTO(数据传输对象)类,以及如何使用ModelMapper库将实体转换为DTO,反之亦然。数据传输对象设计模式是一种经常使用的设计模式.

业务策略、业务规则、业务流程和业务主数据之间关系 - modernanalyst

3459 1 3K

数据质量对于组织系统的正确运行至关重要。在大多数国家/地区,有法律义务确保系统(尤其是金融系统)中数据的质量保持较高水平。例如,澳大利亚审慎监管局的[APRA]审慎实践指南CPG235“管理数据风险”.

Clean Code书籍中java与Python版本的示例 - Code Review

1142 3K

当我开始阅读Robert Martin的Clean Code。我正在尝试将他的所有示例“翻译”成Python,因此我可以更好地理解它们,请看以下内容:书中的Java原始代码:public class .

DDD中领域模型纯度与完整性如何抉择? - enterprisecraftsmanship

2168 3

电子邮件唯一性检查属于业务逻辑,是应该放到领域模型User类中?还是UserController中?这里有领域模型完整性和纯度的抉择: 领域域模型完整性是指您的域模型包含所有应用程序的域逻辑。按照这个.