DDD领域驱动设计
大局事件风暴:寻找差距
在事件风暴上,实现下面几个步骤: 我们首先进行了一次混沌探索,从每个人那里收集了相关的领域事件。 之后,我们通过整理事件、删除重复事件和微调事件来组织混乱。 会议结束时,我们将事件按时间顺序排列。 我.
幽默:两种项目包的选择难题
牛津大学“领域驱动设计”课程
领域驱动设计(“DDD”)是一种专注于系统领域而不是技术的软件设计方法。重点是构建共享的心理模型并以尽可能简单的方式在代码中表示该领域模型。数据库存储、框架等技术细节被认为是设计的次要方面。该模块将重.
如何发现商业规则以及表达它们的五项基本技能
SoftwareMill实现领域驱动设计的经验
现代软件开发不仅需要对技术有扎实的理解,还需要对驱动软件的业务有全面的掌握。这包括操作领域和组织结构的知识。幸运的是,软件开发行业已经开发了各种技术来帮助完成这项任务。包含众所周知的模式和工具的常见保.
Go中struct嵌套与面向对象以及上下文
我一直倾向于尽量避免Go struct结构体嵌入,因为我发现这样做会增加阅读难度,因为这个 "上帝结构体god struct "恰好实现了大量独立的接口,并被传递到很多地方。不过我还是想听听其他人的意.
DDD中用于领域驱动探索发现的新Miro模板
在 SingleStone,我们不断改进方法,帮助客户使用领域驱动设计 (DDD)实现架构现代化。什么是领域驱动探索发现?领域驱动探索发现是一组指导性的可视化步骤,可帮助团队充满信心地快速创建现代架构.
jMolecules:Java中DDD模型与架构的抽象库包
这是一组库,可帮助开发人员以无干扰、简单的旧式 Java 实现DDD领域模型。jMolecules 背后的想法 明确表达架构概念,以便于代码阅读和编写。 使特定领域的代码免受技术依赖。减少样板代码。 .
Cynefin是认知框架,不是模型
这篇文章讨论了Cynefin框架与模型的区别,强调了Cynefin作为一个框架的重要性,以及它在复杂系统中的应用。 Cynefin是一个框架,不是一个模型,其目的是测试想法而不是代表现实。 作者指出了.
事件风暴中如何识别聚合?
事件风暴是一种强大的技术,用于映射不同抽象级别的系统的复杂性。这种协作方法使团队能够可视化并理解域内的事件、操作和策略的流程。 大局级别在事件风暴的大局层面,主要目标是建立系统的总体视图。该阶段是整个.
庆祝领域驱动设计 (DDD) 和EIP诞生20多年
二十年后,《领域驱动设计》和《企业集成模式》依然是信息技术领域中至关重要的经典书籍,因为它们关注的是概念和折衷方案,而不是特定的技术。DDD和EIP的相关性得以持续,因为它们不仅简化了复杂系统的设计和.
3分钟大局事件风暴
这篇文章总结了关于大局事件风暴的文章的要点。它还包含有关大局事件风暴后该怎么做的参考!为什么要举办一场大局事件风暴我们首先讨论了为什么要举办一场大局事件风暴?我们看到事件风暴是大前期设计和 100% .
Spring文档:DDD主导Spring Data JDBC的实现
所有Spring Data模块的灵感都来自Domain Driven Design中的“repository”、“aggregate”和“aggregate root”概念。这些对于Spring Da.
系统分析中循环流程图 (CFD)
在错综复杂的商业分析世界中,了解各种经济主体之间复杂的相互作用对于做出明智的决策至关重要。在理解这些相互作用方面发挥关键作用的工具之一是循环流程图(CFD)。这种视觉表现形式起源于经济学领域,现已进入.
工程师与知识流失的斗争
这篇文章主要讨论了在公司中知识流失的问题,特别是从工程师的角度出发。作者提出了“生物数据存储”这个术语,强调了每位员工在保存和传递知识方面的关键作用。文章指出,知识流失可能会对组织的沟通结构和系统设计.
什么是流程编排协调?
流程编排协调,或者更具体地说流程协调,是包括医疗保健和金融服务在内的许多行业的一个重要方面。它涉及各种人员、流程和技术的协调,以实现特定的目标或结果。协调存在多个层次,每个层次都有自己独特的特点和要求.
Wardley地图 vs. Cynefin方法论
如何将Wardley 地图与 Cynefin 结合起来? 它们是相辅相成的工具,既不能相互替代,也不能混为一谈,形成 "整体 "观点。 它们从不同的视角探索问题空间,两者本身都很有用,应该一起使用。 .
问题 vs. 解决方案 ?
经常遇到问题空间和解决方案空间这两个短语。人们使用这些词来尝试阐明他们所指的工作和活动的类型,或者他们在构建新事物的过程中所处的位置。不幸的是,我注意到这些词非但没有帮助沟通,反而非常含糊,以至于我们.
DDD中如何破解上下文划分难点?
Java中的规则引擎
Java 中的规则引擎为我们提供了一个以灵活且定义的方式管理和执行业务规则的框架。这些引擎使开发人员能够在不更改核心应用程序的情况下更轻松地修改和理解规则,从而将业务逻辑与应用程序代码分开。规则引擎旨.
领域建模中容易出错的部分
领域建模是考虑实体和它们之间的关系?啊,不太好。 虽然这通常是典型的建议的例子,它实际上是落后的。 不要构建数据库模式/结构。如何对复杂的领域进行建模?在领域驱动设计中,您在领域建模时可能会考虑实体、.
表达业务规则时能明确无误、毫无疑问吗?
Apache Causeway:实现领域驱动设计的原型工具
Apache Causeway™ 通过自动为 Spring Boot™ 应用程序生成 UI 来实现域驱动的应用程序开发。这意味着: 生产力- 您的应用程序主要是业务逻辑,消除了昂贵的 UI 代码。 发.
领域驱动设计兑现承诺了吗?
“解决软件核心的复杂性” ——DDD 能成功兑现这个承诺吗?为了诚实地回答这个问题:DDD 有助于降低复杂性吗?,我根据四个因素开发了一个个人的复杂性心理模型:F1-F4。在我看来,复杂性可以在以下情.
代码内聚性
在软件开发的动态环境中,代码内聚性的概念是创建高效且可维护的应用程序的基石。尤其是在Java这种以其健壮性和可扩展性而闻名的语言中,理解和应用内聚性原则可以显着提高软件项目的质量。本文深入探讨了 Ja.
使用 Spring Modulith 改进模块化整体应用
在第一篇文章:使用Spring Boot和领域驱动设计实现模块化整体中,我们了解了如何使用 Spring Boot 和 DDD 构建和实现模块化整体应用程序。本博客中,我们将尝试解决这些限制以创建更易.
REST与RPC = 面向对象和函数编程
REST 与 RPC 的争论:REST API ! = HTTP 远程过程调用作为开发人员,每当需要 API 时,我们常听到的一句话就是 "哦,我们可以为此开发一个 REST API"。好吧,这没什么.
使用Spring Boot和领域驱动设计实现模块化整体
用模块化整体架构编写的代码实际上是什么样的?借助 Spring Boot 和 DDD,我们踏上了编写可维护和可演化代码的旅程。当谈论模块化整体代码时,我们的目标是以下几点:应用程序被组织成模块。每个模.
离开Java/C#并不喜欢在Go中看到DDD
我注意到,在 Gophers 的小圈子里,他们离开 Java/C# 的动机是渴望一种更简单、更直接的编程方法,以避免与 DDD 和其他强调松散耦合的范式相关的复杂性和不可预测性。他们表示,之所以转用 .
基于状态机实现的DDD聚合根Order对象
展示一段示例代码 - Order 类。此类在我们的示例 DDD/CQRS/ES 应用程序中使用。我们正在改进此应用程序,因此这是记录某些意见和更改的好机会。module Ordering class.