Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
DDD聚合
DDD聚合五种设计方法
聚合是啥?聚合就是整体与部分的组合,这里推荐一篇Szymon Kulec英文文档,点击标题进入后可获得实现聚合的五种规则,该文档大意翻译如下: 我第一次阅读领域驱动设计(DDD)的蓝皮书时,它改变了我对业务领域的看法。一开始,我认为这种新方法纯粹是技术性的
关系数据库分片原则
本文主要讨论了两种数据库分片方式,基于业务的自然分表法和基于微服务的分片法。其实微服务的切分依据还是要首先找出业务数据的DDD聚合才能切分。 当数据库数据量很小时,很多问题可以通过硬件进行扩展。然而,随着数据表数量的增长,就需要考虑其他扩展数据库的方法了。
领域事件与事件溯源的区别
为什么领域事件domain events和事件溯源event sourcing不应混淆。领域事件与事件溯源有什么共同之处?共同点是名称中的“事件”一词。但除此之外,在与项目,会议或培训中的建筑师和开发人员交谈时,我经常听到领域事件与事件溯源相关,事件溯源是领域事件的理想来源。
提高Spring Data JPA应用程序的性能
Spring Data JPA为Spring应用程序提供了数据访问层的实现。这是一个非常方便的组件,因此您可以花更多时间来实现业务逻辑。使用Spring Data JPA时需要遵循一些好的做法。例如,限制不必要对象的加载以优化性能。本文将为您提供一些减少数据库往返的技巧,而不是检索数
使用Spring Data JDBC实现DDD聚合
本文讨论了Spring Data JDBC如何实现DDD中聚合根存储的设计思路,其中主要讨论了是不是每个实体都需要一个对应数据表,这种问题需要根据具体情况而定。 Spring Data JDBC比JPA更容易理解,比如对象引用特性会很有趣。作为第一个示例,
什么是GRASP模式?
GRASP模式(一般责任分配软件模式)描述了对象设计和责任分配的基本原则和模式。 确定需求并创建领域模型后,如何将方法添加到Class类中,并定义对象之间的消息传递以满足要求。GRASP模式是一种学习辅助工具,可帮助人们理解基本对象设计,并以有条理,合理,可解释的方式应用设计推理。这
关于DDD中聚合根的确定
最近在动手做一个CQRS 和 event source 结合的微服务项目。实施过程中。遇到了一个跨服务关联查询的问题。虽然现在还没有确定究竟哪里会遇到。但是我知道自然而然肯定会遇到的。比如USER 这个service和其他service之间的跨服务关联查询。这样的话。就会产生一些问题。网上找了一些相
宽事务是坏味道 | Szymon Kulec `Scooletz`
如果你能感觉到空气中有难闻的气味,你可以说某些东西已经烂了。同样的规则适用于如果发现需要跨越多个实体的事务才能完成业务操作。您可以将这些实体称为聚合,您可以将它们称为Foo或Bar,但如果事务范围很广,则会遇到麻烦。(banq注:跨多个服务的宽的事务有时是一个伪命题,比如JTA或2PC许诺给
关于领域驱动设计的函数编程思考 - Naveen Negi
在过去的几年里,我一直在使用像Elixir和Clojure这样的函数式语言,即使我确信DDD可以应用于函数式语言,但这个领域并没有足够的资源介绍。嗯,也就是很少的相关讨论和博文,但大多数人又试图将DDD模式从OO直接映射到FP。 战
用六边形架构构建可维护系统 - IlkkaSeppälä
传统分层架构存在的谬误:这篇博客文章是关于实施Alistair Cockburn的六角形架构。我们先来谈谈分层架构。这是
观点:实现CQRS分离不如实现一致性分离 - @jroper
我开始认为CQRS分离方向是错误的,我们不应该在命令和查询之间分离责任,而是在业务需要强烈一致的操作和可能弱一致的操作之间。这意味着如果业务需要读取您自己的写入,那么您不必向后弯曲以实现它,您只需在强一致性方面执行该读取操作。它还允许更灵活的写入,因为您可以在业务允许的弱一致
Event sourcing是否只适用于稳定业务
CQRS+ES我们已经在生产环境中使用了,但实际使用中感觉对业务变化并不如想象中的灵活 比如当业务发生变化时,如果修改了event的相关定义,那么所有已经在event store中存储的event则可能在Event sourcing时发生错误,比如缺少某些
对象应该只构建一次
规则:创建一个对象时,它应该是一次性完整的、一致的且有效的创建好。 说白了,对于Java来说,一个类只应该有一个构造函数,这样才能保证一次性完整一致地创建它的对象。看看Matthias Noback有关DDD这篇文章怎么说,下面是一半翻译一半掺杂我个人观点
按合同设计 - 了解有关OOP的新内容 Marcell Lipp
在我学习计算机科学的过程中,我遇到了所谓的Hoare逻辑。它的主要思想是,对于每个命令/程序,您可以定义前提条件和后置条件。这些是逻辑表达式。在启动程序之前必须满足前提条件。主要是检查所有输入是否在正确的范围内等等。它当然也可以是恒定的,这意味着:这个程序没有特定的前提条件。运行程序后必须满
解决DDD核心的复杂性
让我们做一个小实验:试着向那些对此毫无头绪的人解释领域驱动设计的要点。这一点,特别是简洁地说,并不容易。哎呀,我自己也在努力。有界的上下文,实体,域事件,值对象,域,聚合,存储库......为了在明显的混乱中找到顺序,我想从一个相当不同寻常的角度分析DDD方法 - 将领域驱动设计应用
耦合与聚合的区别比单体与微服务区别更重要
Martin Thompson (@mjpt777) 于 6:30 下午 on 周一, 10月 01, 2018:Assuming REST and HTTP are required for microservices greatly restricts agility. Couplin
英文DDD培训在线课程推荐: 从失血模型重构到充血模型
构建防弹 bullet-proof 业务线应用程序是一项复杂的任务。本课程将向您介绍如何从贫血领域模型重构到丰富、高度封装的充血模型。如果您想成功构建构建防弹业务线应用程序,那么拥有丰富的,高度封装的领域模型是必不可少的。在本课程中,从贫血领域模型向富血模型重构,将向您展示如何正确实
聚合体/服务/系统 =细胞/生物体/社会 | Szymon Kulec`Scooletz`
这篇文章用生物学概念来帮助你理解DDD设计中聚合服务等概念,细胞组成生物,生物组成社会。 细胞也称聚集如果我们看一个细胞,它可能是表示聚合的一个很好的比喻,为什么这样?细胞有边界(甚至是物理
上页
下页
关闭