В настоящее время я создаю приложение PHP с идеями CQRS, ES и DDD. Рассмотрим это приложение для опроса с 5 вопросами. Участник может ответить на опрос, ответив на 5 вопросов.CQRS + PHP: где разместить логику при событии
5 вопросов могут быть запрошены со стороны чтения в правильном порядке. Но вопрос может иметь свои условия. Например, не задавайте вопрос 2, когда на ответ B ответ на вопрос 1. С ответом 1B следующий вопрос (ы) задавать: 3, 4 и 5.
Клиент может выполнить команду AnswerQuestion , обработчик обработает эту команду, а событие QuestionAnswered будет запущено. На основе этого события обработчик события обновит сторону чтения, и клиент может запросить следующий вопрос. Когда вопросов нет, спросите, участие будет завершено для участника (и может принять участие в новом участии).
Логика в опросе решит, какие вопросы задать, а какие нет на основе данного ответа, это чистая логика домена. Я боюсь, где разместить/применить эту логику. Также, где будет принято решение о завершении участия. Я думаю, что наиболее вероятный ответ будет: пусть опрос AR определит следующий вопрос, основанный на данных ответах от участия. Или, делитесь логикой в сервисе, пусть читающая сторона запрашивает вопросы и ответы и применяет к ней общую логику.
Помогите мне больше? Заранее спасибо!
Если вы могли бы, пожалуйста, дайте мне знать, если мне нужно расширить любые области моего ответа, или если ответ не является тем, что вы ищете, подумайте о создании щедрости, чтобы привлечь внимание. – g18c