gpt4 book ai didi

domain-driven-design - 事件源和读取模型生成

转载 作者:行者123 更新时间:2023-12-03 10:03:01 24 4
gpt4 key购买 nike

假设存在堆栈溢出域问题和事件的以下定义:

UserRegistered(UserId, Name, Email)
UserNameChanged(UserId, Name)
QuestionAsked(UserId, QuestionId, Title, Question)

假设事件存储处于以下状态(按出现顺序):
1) UserRegistered(1, "John", "john@gmail.com")
2) UserNameChanged(1, "SuperJohn")
3) UserNameChanged(1, "John007")
4) QuestionAsked(1, 1, "Help!", "Please!")

假设以下非规范化的读取模型用于问题 list (针对SO的第一页):
QuestionItem(UserId, QuestionId, QuestionTitle, Question, UserName)

和以下事件处理程序(用于构建非规范化读取模型):
public class QuestionEventsHandler
{
public void Handle(QuestionAsked question)
{
var item = new QuestionItem(
question.UserId,
question.QuestionId,
question.Title,
question.Question,
??? /* how should i get name of the user? */);
...
}
}

我的问题是 ,我如何找到提出问题的用户的名称?或更常见:如果我的非规范化读取模型需要特定事件中不存在的其他数据,该如何处理事件?

我已经检查了CQRS的现有样本,包括Greg Young的 SimpleSQRS和Mark Nijhof的 Fohjin样本。但是在我看来,它们仅使用事件中包含的数据进行操作。

最佳答案

只需用所有必要的信息丰富事件。

我记得,格雷格(Greg)的方法-在以这种方式创建和存储/发布事件的同时丰富事件。

关于domain-driven-design - 事件源和读取模型生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4064067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com