DDD聚合

     

Go中struct嵌套与面向对象以及上下文

62 1 3K

我一直倾向于尽量避免Go struct结构体嵌入,因为我发现这样做会增加阅读难度,因为这个 "上帝结构体god struct "恰好实现了大量独立的接口,并被传递到很多地方。不过我还是想听听其他人的意.

Java中将UUID存储为Base64字符串3种方法

66 9K

使用 Base64 编码字符串是一种广泛采用的存储通用唯一标识符 (UUID) 的方法。与标准 UUID 字符串表示形式相比,这提供了更紧凑的结果。在本文中,我们将探讨将 UUID 编码为 Base6.

事件风暴中如何识别聚合?

40 5K

事件风暴是一种强大的技术,用于映射不同抽象级别的系统的复杂性。这种协作方法使团队能够可视化并理解域内的事件、操作和策略的流程。 大局级别在事件风暴的大局层面,主要目标是建立系统的总体视图。该阶段是整个.

Spring文档:DDD主导Spring Data JDBC的实现

304 2

所有Spring Data模块的灵感都来自Domain Driven Design中的“repository”、“aggregate”和“aggregate root”概念。这些对于Spring Da.

Rust中标记类型

61 5K

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

Go中的DDD存储库设计模式

63 3K

根据 DDD 原则实现存储库和聚合可以封装领域逻辑并增强应用程序的可维护性。确定聚合边界需要深入考虑域和表设计,但这可以说是软件开发中更有趣的方面之一。让我们考虑一下电子商务网站的购物车界面。假设有购.

代码内聚性

290 27K

在软件开发的动态环境中,代码内聚性的概念是创建高效且可维护的应用程序的基石。尤其是在Java这种以其健壮性和可扩展性而闻名的语言中,理解和应用内聚性原则可以显着提高软件项目的质量。本文深入探讨了 Ja.

JavaScript中(function() { } )() 是什么?

89 1 3K

JavaScript 的(function() { } )()结构初看起来可能令人困惑,但对于编写即时执行且自成一体的代码块来说,它却是一个非常有用的工具。虽然 (function() { } )().

基于状态机实现的DDD聚合根Order对象

110 3K

展示一段示例代码 - Order 类。此类在我们的示例 DDD/CQRS/ES 应用程序中使用。我们正在改进此应用程序,因此这是记录某些意见和更改的好机会。module Ordering  class.

DDD中如何为聚合模型减负?

135 2K
业务需求场景: 商品应在提交订单时为客户保留。 仅仅将商品添加到购物车并不能保证产品的可用性。 客户不能将已经缺货的产品加入购物车。 事实上,这并不是什么花哨的要求。我曾经做过一个电子商务项目,就有这.

如何按照功能设计模块包?

82 3K

下图是一个高耦合、低相干性的两个包调用设计:┌──────────────────────────────────┐     ┌──────────────────────────────┐│  pl.

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

154

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

DDD:从聚合到函数组合的改变

233 2

来自OSKAR DUDYCZ的DDD变化旅程。这是我目前所处的进化阶段:我从经典聚合开始,遵循领域驱动设计和典型的面向对象战术模式。因此,将数据和行为封装在一个类中。然后,仅允许通过公共方法进行更改,.

Spring Data JDBC 3.2.0-M2:使用单个select语句加载任意聚合

334 1 5K

从 Spring Data JDBC 3.2.0-M2 开始,Spring Data JDBC 支持单查询加载。单查询加载可通过单个选择语句加载任意聚合。要启用单查询加载,需要在 Relational.

幽默:没有逻辑约束的微服务

491 2 2K
图中鸡蛋克和鸡蛋黄以及炉火三个微服务,如果为了吃一个煎鸡蛋,需要聚合这三个微服务调用。这是过于细分导致的问题,忽视了业务逻辑,如果煎鸡蛋是业务逻辑,那么为了完成这个目标,需要聚合这三个微服务。但是如果.

如何通过80%抽象建模防止单体走向混乱

581 9K
熵是一个普遍法则:如果不重新投入能量,一切都会趋于无序。软件也不例外。当进化发展受到时间和/或预算的限制时,系统就会变得“单体”。单体架构通常是对不一致抽象的意大利面条的委婉说法。Gusto已经建立了.

验证与业务规则的区别 - Mark Seemann

505 1 4K

验证是区别于业务规则的定义。本文提出了软件开发中验证的定义:介绍了我目前是如何区分验证和业务规则的。我发现这种区分是有用的,尽管这也许是一个因果关系颠倒的例子。我的定义是这样的:验证是一个决定数据是否.

使用反需求方法寻找隐藏的业务逻辑和系统边界

647 1 5K
我们都喜欢建立绿地新项目。 但不可避免的是,开始一个新的项目需要与商业利益相关者进行大量的会议,以确定初始需求和典型的数据模型。这些都是......不那么有趣的。当这些会议之一发生在高碳水化合物的午餐.

实践中的 DDD内聚机制 | by Gara Mohamed

872 1 11K
在我们的领域模型实现中,我们成功地使用了许多 DDD 模式和原则。在这篇文章中,我将展示一个内聚机制的示例,该机制使我们能够解决产品的复杂性。业务领域在整个欧盟行业的天然气运输和天然气交易中,客户可以.

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

1487 2

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

适合用于数据库主键的最佳UUID工具库 - Vlad Mihalcea

1749 1 7K

在本文中,我们将了解哪种 UUID(通用唯一标识符)类型最适合具有主键约束的数据库列。虽然标准的 128 位随机 UUID 是一个非常受欢迎的选择,但您会发现这非常适合数据库主键列。通用唯一标识符 (.

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

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

聚合数据会失去上下文信息!

827

聚合数据能简化它,但让我们失去了信号和我们需要理解我们所看到的内容的上下文。聚合是分析时间序列数据的标准最佳实践,但它会通过剥离关键上下文而产生问题,以至于您甚至不知道自己失去了多少潜在洞察力。在这篇.

什么是语义技术?

1973

语义技术使用形式语义来帮助人工智能系统理解语言,并以人类的方式处理信息。因此,它们能够根据意义和逻辑关系来存储、管理和检索信息。企业已经在使用语义技术和语义图形数据库,如Ontotext的GraphD.

一张图解释DDD领域驱动设计的战术概念

2206 4
​Eric Evans的经典著作《领域驱动设计:在软件的核心处理复杂性》解释了一种方法来建模一个复杂的业务。三种领域对象: 实体:具有ID和生命周期的域对象。 值对象:没有ID域对象 聚合:由聚合根(.

DDD设计聚合体的权衡过程 | Matt Bentley

1552 1 28K
本文针对的是对DDD和聚合体有一定工作经验的人,这些例子使用了C#。然而,如果你熟悉任何OO语言,那么你也能跟上。可以在此处查看 GitHub 问题域首先,我们需要一个问题域来探索。我为一家假公司 D.

如何掌握DDD聚合设计? - SSENSE

2272 4 16K
在本文中,将深入研究领域驱动设计(DDD) 以及许多困惑和讨论的主题:聚合设计。首先简要概述什么是聚合,然后继续揭开业务不变量的神秘面纱,并在您必须打破聚合时提供实际考虑因素。什么是聚合?DDD 中提.

如何有效地组合您的业务逻辑 - Event-Driven.io

1262 1 18K
假设我们要实现购物车。我们有以下要求:客户只能在打开购物车后将产品添加到购物车中。在选择产品并将其添加到购物篮时,客户需要提供选择的数量。系统根据当前价目表计算产品价格。客户可以从购物车中移除具有给定.

建模:标识字段 - Dan

1307 1 2K

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