Яка різниця між подіями, що проводяться подіями, та джерелами подій?


13

Я вивчаю дизайн, орієнтований на домен (DDD), і стикався з термінами: "Керовані подіями" та "Події". Я знаю, що мова йде про публікацію події від виробника до споживача та зберігання журналу, тому моє питання таке:

Яка різниця між подіями, що проводяться подіями, та джерелами подій?

Відповіді:


16

Термін " Керована подіями архітектура" використовується для будь-якого типу програмної системи, яка базується на компонентах, що передаються в основному або виключно через події. Наприклад, майже будь-яка основна рамка GUI на будь-якій популярній платформі використовує механіку, керовану подіями. Термін "подія" зазвичай означає "повідомлення" в цьому контексті.

Розподіл подій - набагато більш спеціальний термін, що стосується систем, де весь стан програми зберігається як послідовність подій. Відомий популярний клас прикладів - системи транзакційних баз даних, які зберігають будь-які зміни стану в журналі транзакцій. Тут термін "подія" більше відноситься до "зміни стану", а не лише до "повідомлення".

Таким чином, будь-яка система, яка використовує "пошук подій" в якості своєї основної механіки, може розглядатися також як система з рівномірним керуванням, але навпаки не вірно взагалі.


Захистив свою відповідь. Я зараз сам це шукаю, і спочатку натрапив на вашу відповідь. Дивлячись на фразу "весь стан програми зберігається як події послідовності", схоже, ви говорите так: "Стан програми не зберігається безпосередньо в його поточній формі. Натомість кожна операція створення, оновлення чи видалення виконується на об'єкті чи моделі вважається "подіями", і безпосередньо зберігаються ті "події". Отже, щоб отримати поточний стан об'єкта, ви повинні повторити ці події, щоб відновити його копію ". Це правильно звучить?
Panzercrisis

1
@Panzercrisis: Я повинен був написати "Sourcing подій зберігає всі зміни стану програми як послідовність подій". (як Фаулер). Усі об'єкти зазвичай мають "поточний" стан, цей стан також може зберігатися (може бути відкладено), а також сама послідовність подій. Я рекомендую прочитати статтю Фаулера для повного пояснення.
Doc Brown
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.