CQRS+;PHP:事件发生时将逻辑放置在何处
目前,我正在用CQRS、ES和DDD的思想构建一个PHP应用程序。让我们考虑一个5个问题的调查应用。参与者可以通过回答这5个问题来回答调查 这5个问题可以按正确的顺序从阅读端查询。但是,一个问题可以有条件。例如,当B回答问题1时,不要显示问题2。答案是1B,下一个问题是:3、4和5 客户端可以启动命令AnswerQuestion,处理程序将处理该命令,并启动事件questionresponsed。基于该事件,事件处理程序将更新读取端,客户端可以查询下一个要询问的问题。如果没有进一步的问题,参与者将完成参与(并可以参加新的参与) 根据给定的答案,调查中的逻辑将决定要问哪些问题,哪些问题不是,这是纯领域逻辑我正在努力将此逻辑放置/应用于何处。此外,参与何时完成,在何处决定。我认为最可能的答案是:让调查人员根据参与人员给出的答案确定下一个问题。或者,在服务中共享逻辑,让阅读端查询问题和给出的答案,并将共享逻辑应用于该服务CQRS+;PHP:事件发生时将逻辑放置在何处,php,database,events,domain-driven-design,cqrs,Php,Database,Events,Domain Driven Design,Cqrs,目前,我正在用CQRS、ES和DDD的思想构建一个PHP应用程序。让我们考虑一个5个问题的调查应用。参与者可以通过回答这5个问题来回答调查 这5个问题可以按正确的顺序从阅读端查询。但是,一个问题可以有条件。例如,当B回答问题1时,不要显示问题2。答案是1B,下一个问题是:3、4和5 客户端可以启动命令AnswerQuestion,处理程序将处理该命令,并启动事件questionresponsed。基于该事件,事件处理程序将更新读取端,客户端可以查询下一个要询问的问题。如果没有进一步的问题,参与者
你能帮我进一步吗?提前谢谢 据我所知,您这里有几个领域概念(请原谅术语,请与领域专家交谈以完善它们):
- 问题(被问的问题)关系(问题之间)
- 调查(AR),由多个问题组成,包括
- 关系映射)
- 提交的调查
事件来源可以极大地帮助您了解业务,我认为在本例中,将选定的问题存储为一系列事件,您可以了解人们的反应速度、他们改变主意的次数等。如果您能告诉我是否需要扩展我回答的任何方面,或者答案不是你要找的,而是考虑创造一个赏金来吸引注意力。谢谢!错过了这个帖子,抱歉。这是一个真正的应用,而不仅仅是学习的目的。使用CQRS的全部想法是你可以得到的统计数据,就像你在最后一段中所说的。你已经为我做了一些更清楚的事情。我想我会的。在阅读端存储所有给定的答案以及下一个问题(目前还没有答案)。客户端可以浏览已回答的问题并获取最后一个要询问的问题。当域决定所有需要的问题都已回答时,将在阅读端设置一个标志。