EntityProcessor
Теория и практика | создано: 11.12.2022 | опубликовано: 17.12.2022 | обновлено: 13.01.2024 | просмотров: 772
Entity processing with domain event collection. Rules, Actions, Validators, some helpers and other things for Domain-Driven Design pattern implementation.
Что это?
Нет ничего проще, чем создать хорошую архитектуру для проекта. Вот только понятие "хорошая" не всегда совпадает с общепринятыми стандартами, паттернами и прочими правилами разработки. Обычно работает одно правило: "сойдет и так". Чем писать много букв, предлагаю посмотреть на видео, на котором я постарался по полочкам разложить необходимость использования подобного решения. И, конечно же, обосновав это как только мог, ссылаясь на свои опыт и практику.
Для того, чтобы показать, как использовать EntityProcessor
задумана простая логика.
Создание Order
По идеи требуется создать сущность Order
использую какие-то проверки свойств. В случае успешного прохождения всех проверок сущность "сохраняется" в базу данных.
Обновление Order
Следующий шаг, обновление статуса сущности Order
. При проверки определенных свойств у сущности, также "сохраняем" обновления в базу данных.
События домена (Domain Events)
В процессе проверок, требуется запустить соответствующие события (Domain Event
). В случае Calabonga.EntityProcessor.ConsoleAppAdvanced
регистрируем их в выходных данных, а дальше запускаем эти события через Mediatr.
Calabonga.EntityProcessor.ConsoleAppGood
В этом проекте реализован простой, но при этом не менее работоспособный вариант реализации описанной выше логики.
Calabonga.EntityProcessor.ConsoleAppAdvanced
В этом проекте реализован уже более продвинутый способ реализации, которые дает полных контроль происходящего, но и кода придется написать немного больше.
Видео
00:00 | Приветствие и заставка
02:25 | Немного слайдов по теме
10:13 | Смотрим, что приготовлено в проекте
22:07 | Создание проекта с суффиксом Advanced
50:36 | Знакомство с проектом после рефакторинга
1:07:30 | Дополнительные материалы и заключение
Ссылки
GitHub Calabonga.EntityProcessor