问题内容: 我是DDD的新手,并且正在尝试将其应用于现实生活中。毫无疑问,此类验证逻辑(如空检查,空字符串检查等)直接进入实体构造函数/属性。但是,如何验证某些全球规则(例如“唯一用户名”)呢? 因此,我们有实体用户 和用户存储库 选项有: 将存储库注入实体 将存储库注入工厂 在域服务上创建操作 ??? 并且每个选项都更加详细: 1。将存储库注入实体 我可以查询实体构造函数/属性中的存储库。但是我
问题内容: 我喜欢用DDD实现的中间开发。开发是由领域驱动的,领域是应用程序中最牢固的部分。我们不依赖基础架构,持久性和表示方式。听起来不错。但是它没有商业价值。 这里有以业务为中心的BDD和外部开发。我们没有前期领域设计(选择实体,值对象,集合)。我们以用户故事为例,编写一些方案并逐一实施。我们从应用程序最可变的部分开始开发- 从演示开始。我讨厌编写脆弱的验收测试。你呢? 因此,如果这里有人成功
我目前正在研究传奇模式。大多数示例似乎都集中在编排传奇上,其中我们有一个中央传奇执行协调器服务,用于分派和接收消息/事件。不幸的是,关于如何实现编舞传奇的信息似乎缺乏一点。 在域驱动设计中,我们有多个有界上下文,理想情况下,每个有界上下文都是一个自包含的微服务。如果微服务A想与另一个微服务B通信,我们使用集成事件。集成事件是使用某种异步通信来发布和订阅的--RabbitMQ、Azure服务总线。
在ddd中,实体可以引用同一聚合的实体或另一聚合根(但不能引用另一聚合内的实体)。 如何实施这样的参考? 实体的方法如何访问引用的聚合根? 实体允许对另一个聚合根做的方法是什么? 对于1.和2.,我的问题是,实体不应该访问存储库。此外,神奇的延迟加载机制并不总是可用的,我认为出于同样的原因应该避免。因此,当存储库加载聚合时,存储库是否应该解析其中每个实体的所有引用(以及所有引用的其他聚合)?或者“
我正在尝试进入设计模式和REST API,对于一个项目,我使用实体框架核心: 存储库模式 工作单位 有些事情对我来说真的很模糊: 数据验证,应该在哪里进行? 事件?这应该在哪里触发?例如:当用户注册时,我想给他们发一封电子邮件。 业务层应该采用DTO还是Domain模型? 从DTO到域模型的转换应该去哪里? 什么应该进入控制器? 我知道这些事情也取决于开发人员,但是最好的/“原创”方式是什么。
最好的例子是需要持久化实体。我有以下候选项来为用户分配唯一标识符: < li >分配后端(NDB、MySQL等)提供的密钥。). < li >通过某些服务(如系统时钟)手工制作唯一标识符。 < li >像emailId这样的属性。 举一个详细视图的简单例子,我们经常有一个用户的详细显示,比如,如果我们保持emailId作为唯一ID,那么用户有可能在某一天更改其电子邮件ID并破坏它。 哪个是识别同一
假设我有一个对象,该对象应包含(政府 ID)对象。我正在从乘客获取。创建对服务器的请求并获取数据(json),而不是解析接收的数据并存储在存储库中。 我很困惑,因为我想将< code>Passport存储为实体,并将其放入< code>PassportRepository中,但所有关于密码的信息都包含在json中,而不是我在上面收到的信息。 我想我应该使用作为 VO 并将其放入(聚合)对象中。或者
null 我们尝试了几件事: > 发出命令: 激发命令 同步处理此命令,如果命令无效或引发事件,则返回错误。 null 缺点:-据我所知,应该用佐贺来编排流程。这里我们介绍“验证”的概念。我不确定这是不是推荐的方法。 验证是一个非常常见的概念。在分布式完全异步系统中如何处理它?
我对DDD和CQRS的概念是新的,无法找到一个最终的解决方案如何以一种干净的方式上传图像或文件。 我有三个想法来解决这个问题,但我对它们不是很满意。 方式1: 1。在单个请求中发布所有数据,包括图像(多部分) 2。创建,它返回. 3。之后,创建并将与构造函数中的根数据一起传递。就CQRS而言,一个用户交互应该只有一个命令。 方法2: 1。将图像发送到分离endpoint,创建临时文件并返回id或文
问题内容: 我正在尝试遵循DDD,并且有一个Question类和Feedback类(以及其他)。我希望能够计算问题的数量,反馈的数量以及被视为元操作的许多其他事情。 此类“元”方法应该与属于该类的其他方法位于同一个存储库中,还是应该在您具有查询数据库的不同元方法的MetaRepository中(在这种情况下,将混合所有类)? 问题答案: DDD中的任何内容都禁止每个聚合具有一个以上的存储库。您可以
问题内容: 我有逻辑,包括从一个系统中选择大量记录,执行多个转换(基于业务规则)并将它们插入到另一个系统中。 将这些记录中的每一个实例化为一个对象,对它们执行转换,然后将所有这些对象插入另一个系统,似乎是一种高性能(和内存)。 在DDD中实现此目标的最佳方法是跳过类/对象并直接通过SQL(也许是存储过程)来做到这一点吗? 有没有更好的方法使用DDD来实现此目标? 注意:系统使用SQL数据库,目前不
问题内容: 如何在SQL中获取星期几(以ddd格式,所以是Mon,Tue等)?我在CAST和CONVERT文档中什么都没看到。 问题答案: 有很多方法可以做到,这是一种方法:
本文向大家介绍什么是领域驱动设计(DDD)相关面试题,主要包含被问及什么是领域驱动设计(DDD)时的应答技巧和注意事项,需要的朋友参考一下 专注于核心领域逻辑 在模型上找到综合的设计 不断与领域专家合作,改进应用程序模型并解决与领域相关的问题
本文向大家介绍为什么需要域驱动设计(DDD)?相关面试题,主要包含被问及为什么需要域驱动设计(DDD)?时的应答技巧和注意事项,需要的朋友参考一下 映射领域 降低复杂性 可测试性 可维护性 知识丰富的设计 将业务和服务结合在一起 上下文集中 通用语言
所以我将通过使用一个例子来解释这个问题,因为它使一切更加具体,希望能减少歧义。 架构非常简单 1微服务 每个微服务都将使用CQRS/ES设计模式,这意味着 每个微服务都有自己的Aggregate映射现实世界问题的域 聚合的状态将从事件存储重建 每个事件都将表示聚合中的状态更改,并将通过消息代理传输到对更改感兴趣的任何服务 每个微服务都将在其自己的域内进行事务处理 每个微服务最终都会与其他域保持一致