DDD值对象

     

Rust中智能指针与Deref强制

99 3K

Rust 中的 Deref 强制转换是一个强大而方便的功能,它允许您更互换地处理智能指针和拥有的值。它本质上是让编译器自动将对实现 Deref trait的类型的引用转换为对其基础数据的引用。Dere.

业务规则和验证的区别?

230 1 4K

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

使用Holder类实现通用值对象

430 1

假设我们有一个简单的Holder类,它包装了T类型的值。我们可以这样定义它:public class Holder<T> {    public T value;    public Holder(T.

RecordBuilder库使用Builder模式创建Java Record记录对象

549 2K

添加依赖关系:<dependency>    <groupId>io.soabase.record-builder</groupId>    <artifactId>record-builder-pr.

Rust 中的枚举和模式匹配 - serokell

926 14K

在 Rust 中创建自定义数据类型有两种方法:结构和枚举。与结构相比,枚举构造一个具有多个变种、变体而不是多个字段的类型。虽然结构是几乎所有编程语言的一部分,但枚举并不是那么主流,并且主要出现在 Ha.

如何安全使用Java DTO | Snyk

941

Java中的数据传输对象(DTO)是在子系统之间传输数据的对象。它是一种用于聚合数据的企业设计模式。主要目的是减少子系统之间所需的系统调用次数,从而减少所产生的开销。普通旧Java对象(Plain O.

建模:名称字段 - Dan

941 3K

在本文中,我们关注记录名称字段。这些字段旨在包含一个用户可识别的值,通过该值可以了解、寻址或引用一个人或事物。与业务标识符字段不同,名称字段的值可能会随着时间而改变。此外,对于可以存在有效重复值的事物.

JDK新提议:新增Record记录的"with"表达式

1319 2 5K

甲骨文java语言架构师Brian Goetz提议JDK增加with功能,用来增强Record功能。记录Record和内联类是 Java 中两种新形式的浅不可变类:如果我们的Point记录想要公开一种.

编码时请将“单位”写入名词以突出明确 - Ruud

690 3K

有一个代码可读性陷阱,一旦你意识到它就很容易避免,但这个陷阱无处不在:人们喜欢省略“单位unit”。看看 Python、Java 和 Haskell 中的以下三个片段:time.sleep(300)T.

Java 19可能是一个大版本? - infoworld

1114 1

随着Java 18将在两周内作为生产版本发布,Java 19 开始形成。标准 Java的下一个版本JDK19将通过API对Java运行时JVM以外的代码实现调用操作,还可能涵盖从通用泛型到 RISC-.

面向数据的编程 · Laurent

1142 1 5K

我学习了DDD领域驱动设计、六边形架构和面向数据的编程。我在 Airbnb与Daniel Low在Krispr的工作中使用了前两个。当我们的需求发生变化时,它可以更轻松地扩展项目、重新设计其依赖项和交.

Rust 中的Box指针使递归类型成为可能 - Knoldus Blogs

1273 2K

指针是包含在存储器中的地址的变量的一般概念的编程。Rust智能指针是一种数据结构,不仅可以充当指针,还具有额外的元数据和功能。Box指针是 Rust 中的智能指针之一。Box指针让您将数据存储在堆上而.

重构 001 - 删除Java的Setter方法

951 4K

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

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

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

关于编程语言的可变性和不变性 - alexfertel

2062 1 3K

在本文中,我们将讨论可变性、它的含义以及在编程时与其相关的不同权衡。什么是可变性?可变值是可以在程序执行期间更改的值。这意味着我们可以创建一个值,将其绑定到一个变量,重新分配变量,或更改值的一部分。请.

为什么Java的记录类型比Lombok@Data和Kotlin的数据类更好? - nipafx

1735 1 8K

Java的Recode、Lombok的@Data和Kotlin的数据类所有三个都可以解决POJO样板(无需复杂setter/getter方法),但相似之处并没有什么区别。记录Recode具有更强的语义.

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

1411 10K

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

用Java编写更好的不可变DTO的技巧 - Seb

1878 1 9K

为了使用来自外部服务的数据,我们通常将JSON有效负载转换为数据传输对象(DTO)。快速处理DTO的代码变得很复杂,但是一些技巧可以有所帮助。我们可以编写易于交互的DTO,使客户端代码更易于编写和阅读.

DDD战术模式的分类使用 - pelshoff

1643 1
值对象: 无标识/主键;可以代表状态之一,可以放入业务规则,值对象是否可以有业务行为视情况。实体:有标识,可以有拥有状态,状态改变需要通过方法行为,业务规则也可以,如果是聚合根则可能会拥有更多业务规则.

使用Spring Boot RowMapper结合JDK14的Java记录实现案例 - zetcode

1439 6K

Spring Boot RowMapper教程展示了如何将ResultSet的行映射到数据载体。我们使用Java记录作为数据载体。对于本教程,我们需要JDK 14并启用预览功能。Java记录是类的受限.

Java 14的数据记录将如何改变编码方式:减少或消除对Lombok依赖 - oracle

1522 2 8K

在本文中将介绍Java中记录的概念。记录Record是Java类的一种新形式,旨在 提供对数据聚合建模的一流方法 弥补Java类型系统中的可能差距 提供通用编程模式的语言级语法 减少类样板 什么是Ja.

DDD值对象的Java实现来啦!Java 11新的值类型ValueType -jaxenter

3441 4 2K

值类型与普通类型对象的不同之处在于:值类型没有对象标头或标识,没有对值类型的引用,值类型是不可变的,并且值类型之间没有继承,因此,它没有多态性。是不是非常类似DDD的值对象?没有标识类似原始变量类型b.

DDD设计中领域模型是否可以依赖第三方? - Mathias Verraes

1598

人们常说DDDesign中的域模型不应该有第三方依赖。这不完全准确。您可以在现有的领域模型之上构建一个电子商务模型,用于购买支付,购物车,产品目录......或者您可以使用第三方验证库来处理ISO标准.

Lombok是有害的 · Gregor Riegler

3768 2 4K

Java是一种非常冗长的语言,注释几乎可以解决任何问题。对吗? - 可是这是多么危险的组合。我完全明白了。我也很懒,所以使用Lombok,但除了复制粘贴所有样板代码外,您是否考虑过影响?魔术是有害的我.

部分响应模式(Partial Response)

1442 14K
目的根据需要从服务器发送部分响应。客户端将指定服务器所需的字段,而不是提供所有详细信息。适用场景 客户端只需要来自资源的数据子集。 避免过多的数据传输 .

Java值对象或DTO克隆工具

1992 1 3K

将一个对象中值复制到另外一个新对象中的工具: MapStruct ,使用方式:1. 加入依赖:<properties>    <org.mapstruct.version>1.3.0.Final</o.

DDD中实现业务规则的验证 - Marcin

3228 1 14K

数据的正确性和执行特定领域的业务规则的能力是软件开发的几个方面之一,几乎任何项目都是如此。由于很难想象任何不需要某种验证的非hello-world应用程序,解决这个问题对整个项目的成功至关重要。当然,.

paluch.biz - Lombok的数据类是有害的!为什么我不再使用Lombok?

2281 2K

其实数据类就是数据结构,就是DTO,其和真正类是有本质区别,见鲍勃大叔实锤:类与数据结构的比较,使用数据类其实是一种倒退!这篇博客文章解释了从项目中删除Project Lombok背后的动机,它反映了.

DDD值对象:被遗忘的价值 – SoftwareMill Tech Blog

1583 4 7K

让我们看一看为什么将值对象方法应用于我们的代码是真的很有用哦。我相信我们中的很多人都听说过域驱动设计(DDD),无处不在的语言以及所有这些奇特的东西。然而,我看到许多代码并不使用于基于这种方法的想法。.

什么是DDD领域驱动设计的战术设计?

2969 2

战术设计是一组在实施中使用的技术资源域模型,这些资源必须应用在一个单一的有界上下文中。如果正确使用战术设计标准,您实际上可以丰富您的领域模型,从而清晰地反映您的业务。请参阅下面的主要构建模块:实体一个.