• 聚合Aggregate模式可能是领域驱动设计 (DDD) 中最重要的战术模式。本质上,它可以这样描述:聚合是可以被视为单个单元的域对象的集群。这意味着聚合中的对象密切相关,并且出于数据更改的目的被视为一个单元。聚合有一个根实体,它是聚合中的主要对象。根实体负
  • 有没有想过如何对属于具有多个依赖属性的实体的 API 请求/响应执行验证?在这种情况下可以执行什么类型的验证?使用什么设计模式?如何构建代码?底层设计应该是什么样的?如何使代码和设计具有可扩展性以适应验证模块的更多依赖属性?如果与属性相关的任何逻辑在未来得到增强,如何使代码和设计灵活以确保需
  • Sqids (发音为“squids”)是一个开源库,可让您根据数字生成简短的唯一 ID,类似 YouTube 的 ID。这些 ID 很短,可以从自定义字母表生成,并且保证无冲突。 例如:https://example.com/Lqj8a0 icon
  • 贫血领域模型是一个没有任何行为、只有数据属性的领域模型。 缺血(贫血、失血)领域模型在简单的应用程序中工作得很好,但如果您有丰富的业务逻辑,它们就很难维护和发展。业务逻辑和规则的重要部分最终分散在整个应用程序中。它降低了内聚性和可重用性,并 icon
  • 将业务规则与琐碎的验证相混淆,将不会带来任何好处。当你所拥有的只是琐碎的验证时,不要把事情复杂化。 让我们立即从一个非常简单的代码示例开始。这是一个有两个条件的单一方法。 第一个是,如果数量参数小于或等于零,我们将抛出异常。 icon
  • 忒修斯之船悖论(Theseus' Ship Paradox)是一个古老的哲学问题,旨在探讨同一性和变化的问题。 具体来说,它的问题是:如果一艘船的每一个部分逐渐被更换,那么到最后,当所有的部分都被替换时,这艘船还是原来的那艘船吗?如果这些被替换下来的旧部分 icon
  • 当谈到 Go中结构体值时,人们纠结:通过指针传递这些值还是只是复制值? 由于指针会带来一些开销,因此人们自然的反应是不惜一切代价避免使用它们,并尽可能传递结构值复制副本。 而我通常选择使用指针结构的两个原因是标识性和一致性。 icon
  • 心理学家长期以来一直在研究绑定问题:人类如何将一个对象的特征识别为与该对象绑定,而不是与其他对象绑定? 现代大模型LM毫不费力地解决了这些任务。 当给出 "绿色正方形 "和 "蓝色圆形 "的上下文时,语言 icon
  • 本文讨论了在数据库模式中使用自动递增整数键和 UUID 作为主键之间的权衡。文章提议了第三种专有方案,即时间排序唯一标识符(TSID)。 以下是三种方案总结:自动递增整数键方案:具有出色的性能和按时间排序的特点,但不能由多个 icon
  • UUID(通用唯一标识符)是一种用于标识信息的标准化方法。UUID版本4是最常见的UUID版本,它基于随机数生成。 UUID 版本 4 是什么?UUID 是通用唯一标识符的缩写,是一个 128 位标识符,表示为由破 icon
  • 去中心化标识符(DID) 具有一个经常被忽视的优势:它们充当标识符元系统,可实现未来防护和跨不同身份系统的互操作性。 这一概念是 Sam Curren 在互联网身份研讨会 (IIW) 上题为“DID 还是非 DID?标识符元系统的价值;eIDAS icon
  • 数据库可以使用符号来表示,并且这些符号可以简化为表的集合。在数据库中,每个实体集或关系集都可以用表格形式表示。ER图如下: icon
  • UUID通常用作数据库表主键。它们易于生成,易于在分布式系统之间共享并保证唯一性。 考虑到 UUID 的大小,这是否是一个正确的选择值得怀疑,但通常这不是由我们决定的。 本文的重点不是“ UUID 是否是键的正确 icon
  • 这篇博文的灵感来自于我为我的上一个客户所做的工作,该客户想要模块化他的单体,但有数百个实体的复杂混乱。我们开始消除模块之间的循环依赖,这种依赖特别是由于 jpa 关系及其对服务层的影响而发生的。这篇博文试图解释为什么更简单的映射方法更好。 JPA icon
  • 该Github项目能够实现各种校验、数据格式转换和过滤转换等各种业务规则的处理。 验证:使用Validation验证输入的错误数据,过滤掉不良数据。例如,您可以验证电子邮件字段。 icon
  • 与业务领域无缝集成的软件能为企业带来一系列强大的优势。它可以简化操作,增强以用户为中心的功能,并为利益相关者提供实时洞察力,以便快速做出深思熟虑的决策。DDD 是一种软件开发方法,擅长在领域专家和开发人员之间提供这种一致性,将软件功能与业务需求直接联系起来。 icon
  • 在Rust中,"marker types"(标记类型)是一种特殊的类型,它们通常没有具体的数据,而是用于在编译时传达一些关于类型的信息,或者为了满足特定的 trait 约定。 这些类型通常被称为“标记类型”,因为它们在程序中充当一种标记,而不是用于 icon
  • ORM 以及保存数据的方式可以显着影响您的设计并导致胖域模型。 数据很重要,但捕获数据的方式可能会引导您走上一条需要意识到您所做的妥协的道路。 我将展示一个示例,说明并非所有数据都是平等创建的。 icon