DDD失血贫血模型

     
  • 如何为ORM胖领模型减肥?

    62 7K

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

  • Spring Boot Modulith模块化指南

    787 22K
    本文将教您如何使用 Spring Boot 构建 modulith 并使用 Spring Modulith 项目功能。Modulith 是一种软件架构模式,假设将您的整体应用程序组织成逻辑模块。此类模.
  • 从贫血领域模型重构为充血领域模型

    456 11K

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

  • 用事件替代你的DTO数据结构 - DZone

    3123 1
    文中的想法最适用于实现(复杂)业务规则、状态转换并将其数据保存到某个数据库的后端应用程序。复杂的逻辑应该在您可以完全控制内部域模型的数据结构上实现,您可以根据问题对其进行定制以简化代码。这是本文中使用.
  • 如何从Spring之外的非托管对象访问 Spring Bean?

    1222 1 5K

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

  • 重构 001 - 删除Java的Setter方法

    1008 4K

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

  • 如何使得软件架构与业务模型相结合? - VLINGO

    1258 1
    商业软件的最大问题之一是技术架构比领域模型获得的提升会更多。大多数领域模型都是普通的,并且可以由学校学生以比通常花费很少的成本来实现;然而,通常支持模型的软件架构,通常是过度设计的。一个常见的吹嘘是这.
  • Java首席语言架构师谈JavaBeans的setter可变性

    789

    Java 程序员是否应该放弃属性setter方法,并对其领域对象进行不可变的建模?Java首席语言架构师Brian Goetz认为:“问题中隐含的非此即彼,这会暗示只有一种正确的方法可以对程序中的数据.

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

    1387 1 9K

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

  • Java 16的三个主要新特性

    1824 5K

    可用于生产的 Java 16 通用可用性 (GA) 版本已经发布了,Java 16 中有一些可用的新特性,我们现在就来看看。 Record记录记录声明一种数据类,这种类在 ORM 框架中被定义为数据传.

  • DDD中简单模型比复杂模型更危险

    1488 1

    很多人将数据表之间的关系图或者将类的静态结构关系作为聚合模型的设计依据,这是片面的。这属于一种简单模型,复杂聚合模型是应该考虑这些结构中部件的交互关系的。mathiasverraes这篇文章主要谈论这.

  • 否定OOP的面向数据编程DOP原理 - Yehonathan Sharvit

    5132 1 13K
    本章试图说明据我所知,面向数据编程的核心原理是什么。这在很大程度上取决于我在Clojure的编程经验,但是我认为这些原则与语言无关。可以使用Java或C#等面向对象(OO)语言来遵守它们,而可以使用O.
  • 比较DAO与Repository存储库模式 - Baeldung

    2457 2 7K

    存储库和DAO的实现被认为是可互换的,尤其是在以数据为中心的应用程序中。这引起了他们之间差异的困惑。在本文中,我们将讨论DAO和存储库模式之间的区别。 DAO模式数据访问对象模式(也称为DAO模式)是.

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

    1179 3K

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

  • 鲍勃大爷:对象是更关注行为,数据库表则是简单的数据结构,if/else/switch有使用依据

    1542 1

    对象更多是关于行为还是数据?从外部看,数据是隐藏的,行为是公开的。我们看到投入转化为产出。但看不到任何倍隔离的数据;我们也不知道这些数据的存储位置或存储方式。数据库表更多是关于行为或数据信息?它们是简.

  • 业务代码编程陷阱案例 - jaxenter

    2 4474 7 7K

    当我们开始编写软件时,我们总是希望有一个好的设计。我们阅读书籍,运用最佳实践,最后,我们常常一团糟。根据我在一家定制软件开发公司的经验,我每天必须处理此类代码,尤其是在某些旧系统上工作时。造成这种情况.

  • Clean清洁领域模型的几个特点 -Kamil Grzybek

    2592 3 4K

    如今,有关干净代码和体系结构的讨论很多。关于如何实现它的讨论越来越多。罗伯特·C·马丁(Robert C. Martin)描述的规则是通用的,我认为,我们可以在其他各种情况下使用它们。在本文中,我想让.

  • 谈DDD与贫血领域模型:再次为失血模型辩护 -Codecentric AG博客

    2 3742 2 4K

    在讨论如何在应用DDD时如何最好地实现我们的领域对象(最近变得越来越流行)的讨论中,一位同事向我指出了Martin Fowler关于Anemic Domain Models的文章(2003年)。马丁是.

  • Bean验证反模式 - reflectoring.io

    961 4K

    Bean验证是在Java生态系统中实施验证逻辑的事实上的标准,它是一个很好的工具。但是,在最近的项目中,我对Bean验证进行了更深入的思考,并确定了一些我认为是反模式的实践。反模式免责声明就像每一次关.

  • 比SOLID更重要的与DDD设计相关的GRASP原则 - Kamil Grzybek

    2 3305 3 7K

    我最近注意到很多注意力都集中在SOLID原则上。这是非常好的事情,因为它是面向对象设计(OOD)和编程的总体基础。对于面向对象语言的开发人员,SOLID原则的知识是编写具有良好质量特征的代码的要求。关.

  • 反腐层ACL - 一个有效的盾牌 - Manuel López Torrent

    3722 6K

    我第一次听说反腐败层(ACL)一词是在Eric Evans的书“领域驱动设计”中。那些日子,DDD是我正在探索的一个新领域,我对所有这些新概念感到非常兴奋,但我没有实现大部分概念。近年来,在我所做的几.

  • 贫血模型与充血模型比较 - DDD - The Domain Driven Design

    4785 3 7K
    在这篇文章中使用Vaughn Vernon的书[ IDDD,2013 ] 的例子来描述SCRUM模型的情景,并能够以实际的方式展示贫血模型和富模型的实现之间的区别。让我们说产品负责人:允许将每个积压项.
  • 贫血模型 - DDD - The Domain Driven Design

    2930

    贫血模型Anemic Model是一种领域模型,其中领域对象包含很少或没有业务逻辑。这个模型最初由Martin Fowler描述,他认为这种做法是反模式。这种反模式的根本恐怖之处在于它与面向对象设计的.

  • 如何使用充血模型实现防弹代码 - DZone Java

    2228 3 18K

    了解有关在Java应用程序中通过使用充血模型+构建器等设计器模式设计防弹代码的方法。毫无疑问,优秀的编码实践带来了诸多好处,例如干净的代码,易于维护以及流畅的API。但是,最佳实践是否有助于数据完整性.

  • 英文DDD培训在线课程推荐: 从失血模型重构到充血模型

    1285

    构建防弹 bullet-proof 业务线应用程序是一项复杂的任务。本课程将向您介绍如何从贫血领域模型重构到丰富、高度封装的充血模型。如果您想成功构建构建防弹业务线应用程序,那么拥有丰富的,高度封装的.

  • TypeScript如何实现DDD的值对象?

    1210 1 5K

    值对象是领域驱动设计的主要组件之一。这是TypeScript中的一个简单的Value Object类。在领域驱动设计中,值对象是帮助我们创建丰富且封装的域模型的两个原始概念之一。实体和价值对象这两个概.

  • DCI与DDD

    2364

    来自Kamil Toszek一篇DCI与DDD结合的文章:我正在实践领域驱动设计方法,它有一些很好的部分比如有界上下文(模块分离很好 - 每个模块代表上下文边界),还有一些 - 对我来说 - 不是那么.

  • 从贫血模型到DDD的重构

    2618 1 7K

    我们将重构一个简单的问题跟踪应用程序,通过典型的层隔离,根据领域驱动的战术设计模式进行建模。这个问题跟踪应用程序非常简单。您可以使用它执行多项业务操作 - 全部通过REST API,并且所有操作都完全.

  • 贫血领域模型和事务脚本的区别

    8 2106

    请问下,贫血的领域模型和事务脚本有何区别?贫血的领域模型,实体几乎没有了业务逻辑,那么业务逻辑能放在哪里?只能是服务中,那么这和事务脚本有何区别呢,思考好久,木有想出来答案说服自己,求指教。(是贫血的.

  • ORM和Rails的问题

    3 2442 2 2K

    看到一句英文:ORM变相鼓励你抹去许多对象的相关状态,而Rails则鼓励你耦合任何一切。原文:An ORM encourages you to smear related state across a.