Модель / архитектура, управляемая данными или управляемая событиями?

Я слышал условия Data Driven а также Event Driven модель из разных людей в прошлом. Я сделал Google, но эти термины все еще неясны для меня, так как оба они похожи на меня

Программирование, управляемое данными, - это модель программирования, в которой сами данные управляют потоком программы (а не логикой программы), где в случае программирования, управляемого событиями, это событие, а не сами данные управляют потоком программы.

В моем понимании событие также данные. Например, в веб-приложении на основе сотрудника - если пользователь нажимает кнопку "Создать сотрудника", здесь происходит событие создания сотрудника (которое также является только данными), а данные - это информация, связанная с сотрудником.

Теперь на сервере сначала будет событие, которое решит, какой будет поток программы, а затем данные (информация, связанная с сотрудником) также будут управлять потоком выполнения, например, будет ли выполняться другой метод для постоянного сотрудника, и если временный, он будет другим

Так не каждая ли это архитектура, управляемая данными? Если нет, в чем разница между ними? Любой веб-пример поможет

2 ответа

сами данные управляют потоком программы (не логикой программы)

Я думаю, вы не совсем понимаете, что такое "поток" в этом контексте. Поток - это сама логика. Например, если вы выполняете какой-то метод, который выполняет A, а затем B, а затем C в качестве аргументов, логика будет "Применить A, B, C", и поток будет таким же, если действия A, B, C будут извлечены для разделения методы. Итак, поток и логика являются синонимами.

Программирование на основе данных означает, что существует некоторый общий код. Он не содержит никакой бизнес-логики, он не контролирует поток. Это просто инструмент для чтения и обработки данных и вывода результатов. Что управляет потоком и логикой, так это сами данные. Итак, если вы хотите изменить бизнес-логику (буквально изменить результат вашей программы), вы изменяете данные, а не код.
И ваш код, ну, это своего рода конвейер, который выполняет команды в зависимости от входных данных. Вы можете думать о таком коде как о функции eval в javascript.

В программировании, управляемом событиями, логика контролируется событиями. А это значит, что данные - это только данные, а все бизнес-правила помещены в код. Событие будет нести некоторые данные, и логика может быть изменена в зависимости от данных события, но разница здесь в том, где эти изменяющиеся логические правила размещены - в данных или в коде; и в случае EDP логика в коде.

Кроме того, взгляните на этот вопрос, некоторые ответы могут пролить свет на эту тему.

Приведенное выше объяснение очень уместно. Чтобы дополнить приведенный выше ответ, в архитектуре, управляемой данными, бизнес может вводить логику непосредственно в лист данных, что упрощает управление логикой в ​​последующих компонентах. Кормление обычно осуществляется с использованием удобных инструментов. Обычно поддерживается главный файл продукта, который состоит из переменных данных, которые обновляются в зависимости от бизнес-требований. Для бизнеса это настолько легко сделать, и это огромная экономия средств по сравнению с управляемой событиями, когда каждое небольшое изменение в бизнес-требовании приводит к огромным затратам на разработку, тестирование и развертывание программного обеспечения.

Другие вопросы по тегам