Программирование, управляемое событиями: почему оно сейчас в тренде?

Опубликовано: 2019-09-17

Программирование, управляемое событиями (EDP), меняет мир услуг по разработке программного обеспечения и становится неотъемлемой частью современной разработки. Его распространение стимулировали Windows и распространение визуальных сред RAD. Как следует из названия, подход к программированию фокусируется на событиях. Последние могут быть инициированы пользователем, системными и программно-генерируемыми. Наиболее распространенные области применения EDP сегодня включают создание графических интерфейсов, серверных приложений и разработку многопользовательских игр.

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

Что такое событийно-ориентированное программирование? Как это реализуется сегодня? Какие плюсы и минусы он предлагает программистам, предприятиям и конечным пользователям? Какие примеры такого подхода к разработке программного обеспечения доступны?

Прочитайте это подробное руководство, которое мы создали совместно с LitsLink, чтобы найти все, что вас может заинтересовать.

Оглавление показать
  • Что такое событийно-ориентированное программирование?
  • Обработка событий как ядро ​​EDP
  • Возможности приложений, управляемых событиями
  • Языки программирования, управляемые событиями
  • Преимущества событийно-ориентированного программирования
  • Недостатки событийно-ориентированного программирования
  • Примеры событийно-ориентированного программирования

Что такое событийно-ориентированное программирование?

веб-дизайн разработка программирование кодирование разработчик программист

В то время как традиционное программирование является линейным и основано на потоке выполнения, при котором операции выполняются в течение фиксированного промежутка времени или до достижения предварительно записанных точек принятия решения, программирование, управляемое событиями, выполняется в соответствии с определенными событиями (например, щелчком мыши, нажатием некоторых клавиш и т. д.). на клавиатуре, выбрав вариант из раскрывающегося меню). Этот тип программирования наиболее распространен для программ с графическим пользовательским интерфейсом (GUI). В случае его использования программа ожидает возникновения событий, а затем отвечает.

Давайте разберемся с некоторой вводной терминологией, чтобы лучше понять EDP.

  • Событие: Событие — это условие, возникающее во время жизненного цикла программы и требующее некоторых действий со стороны системы времени выполнения. События различны по своей природе. Некоторые из них требуют, чтобы программа извлекала и отображала определенную информацию. Другие инициируют некоторые вычисления и изменяют состояние.
  • Сообщение. Сообщение — это структура данных, представляющая событие во время выполнения. Он предоставляет информацию о типе события и параметрах, необходимых программе для его обработки.
  • Обработчик событий: обработчик событий — это определенный модуль в программе, активированный для реагирования на событие.
  • Цикл сообщений: это алгоритм опроса, используемый для реализации EDP посредством непрерывного изучения очереди сообщений и маршрутизации трафика к обработчикам событий.
Отличие событийного программирования от более старых форм состоит в том, что раньше список инструкций выполнялся в заранее определенном, фиксированном порядке, а следующее, что происходило во время использования программы, было следующим пунктом в списке. Кроме того, все программы запускались агентом, компьютером. В условиях событийного программирования объекты (т. е. пользователи) могут инициировать некоторые события («события срабатывания») в программе, и от этих событий зависит, что будет дальше в ней происходить. В результате программирование на основе событий способствует динамическому взаимодействию между пользователями и компьютерами.
 Рекомендуется для вас: Руководство для начинающих по использованию Scala в Apache Spark.

Обработка событий как ядро ​​EDP

повестка-книга-календарь-планировщик-дата-событие-заметка-организовать

Обработка событий составляет основу EDP и отличает эту парадигму программирования от других. Действия программы, соответствующие основам EDP, инициируются запланированными событиями, событиями оборудования, событиями операционной системы, событиями времени выполнения языка и событиями, инициируемыми инструкциями пользователя, предоставленными посредством взаимодействия с графическим интерфейсом программы. Программисты указывают эти действия во время разработки программного обеспечения в виде обработчиков событий. Проще говоря, кодеры должны ответить на вопрос: «Что должно произойти, когда произойдет определенное событие?»

Самая основная модель EDP ​​— аппаратная модель. Он предполагает, что работа центрального процессора прерывается любым внешним стимулом, требующим его реакции. В таких условиях примитивный обработчик прерывания выполняет небольшую обработку события, в то время как функции более высокого уровня операционной системы остаются нетронутыми. Однако эта модель довольно примитивна, лишена очереди сообщений, в то время как современные системы ODP функционируют иначе.

Одним из старейших инструментов обработки событий в программной инженерии является функция обратного вызова. Это процедурная модель EDP, основанная на модели таблицы векторов прерываний. Функции обратного вызова имеют предопределенные интерфейсы, которые могут незначительно отличаться в зависимости от типа события. Типы событий — это небольшие целые числа, вычисляющие во время выполнения позицию события в таблице обратного вызова. Цикл сообщений вызывает функцию обратного вызова при обнаружении сообщения в начале очереди, соответствующей этому типу события. Чтобы функция выполнялась в процессе EDP, язык программирования, на котором это делается, должен обеспечивать метод связывания событий с конкретными функциями обратного вызова.

Возможности приложений, управляемых событиями

мобильное приложение - маркетинг мобильного приложения

Приложения, основанные на событиях, отличаются друг от друга в зависимости от их назначения и функциональности. Тем не менее, все они должны обладать универсальным набором характеристик, таких как:

  • Абстракция события часто предоставляется явно как монада;
  • Возможность синхронизации событий;
  • Реализация стиля передачи продолжения в виде обратного вызова;
  • Источники примитивных событий.

Языки программирования, управляемые событиями

программный код веб-разработка

Программы, управляемые событиями, можно создавать на любом современном языке программирования, а Visual Basic, Visual C++ и Java специально подходят для этой цели. Например, языки визуального программирования Visual C++ и Visual Basic оснащены пакетом интегрированной среды разработки (IDE) с многочисленными стандартными параметрами управления, событиями и шаблонами кода обработчика событий. Python также используется в качестве подходящего инструмента EDP.

 Вам может понравиться: Введение в программирование: краткий обзор Node JS, Laravel, React, Ruby, Vue и Python.

Преимущества событийно-ориентированного программирования

контрольный список-форма-опрос-план-задачи-управление-проектом

Этот подход к кодированию программного обеспечения имеет многочисленные преимущества для всех заинтересованных сторон. Это требует меньше закодированных решений, чем консольные приложения. Многие события определяются действиями пользователя, а не предварительным кодированием всех возможных сценариев. В то время как консольные приложения действуют, приложения, управляемые событиями, реагируют. Во-вторых, исключается возможность ввода недопустимого значения. Консольное приложение задает вопрос и позволяет пользователю ввести ответ. Приложения, основанные на событиях, обычно предлагают набор параметров либо в виде кнопок, либо в виде раскрывающегося меню.

ODP идеально подходит для последних тенденций разработки программного обеспечения, таких как облачные вычисления, микросервисы и потребность в улучшенной масштабируемости с помощью гибких распределенных систем. Использование ODP избавляет от необходимости исправлять и корректировать существующий код при добавлении или удалении какого-либо модуля. Система ODP продолжает работать безотказно, независимо от каких-либо корректировок такого рода. Таким образом, программисты хвалят парадигму ODP за то, что она интуитивно понятна и хорошо подходит для приложений с потоками управления, основанными на комплексе внутренних и внешних событий, а не на структуре. К другим преимуществам ODP относятся:

  • Использование в качестве основы объектно-ориентированного программирования;
  • Улучшение результатов проектирования программного обеспечения;
  • Лучшая отзывчивость и гибкость результирующих программ;
  • Более быстрая обработка за счет распределения данных по нескольким процессорам и обработчикам событий;
  • Улучшена масштабируемость приложения;
  • Лучше слабое сцепление.
Очень важно помнить, что основным преимуществом программирования, управляемого событиями, является интерактивность и лучший пользовательский опыт. Современные пользователи не хотят быть пассивными потребителями, предпочитая быть активными участниками и соавторами контента. Таким образом, программы, управляемые событиями, помогают пользователям самостоятельно ориентироваться в своем опыте и исследовать множество вариантов без предустановленных ограничений. Эта функция гарантирует этому типу программного обеспечения надежное место на рынке разработки программного обеспечения в будущем, поскольку конечные пользователи ищут более настраиваемый и индивидуальный подход к своим приложениям, устройствам и программам.

Недостатки событийно-ориентированного программирования

контрольный список-диагноз-вопрос-анализ-идея-зарплата-документ

Одним из наиболее часто упоминаемых недостатков программирования на основе событий является сложный поток управления и ручное управление стеком. Из-за этих недостатков этот подход к кодированию не является лучшим вариантом для простых небольших приложений, поскольку усилия нецелесообразны.

Кроме того, следует иметь в виду, что событийно-ориентированное программирование не заменяет традиционное структурное программирование, а лишь дополняет его. Традиционные методы программирования по-прежнему имеют решающее значение для написания фактической программы, в то время как элементы кодирования, управляемые событиями, могут помочь в разработке графического пользовательского интерфейса.

Гибкость ODP, ее неоспоримое преимущество, в некоторых сценариях оборачивается и недостатком. Одним из таких проявлений является непредсказуемость программы ОРО в случае изменений и ослабление контроля над системой в целом. В то время как кодировщики любят ODP для беспроблемных корректировок, например удаления или добавления некоторых функциональных модулей, эти корректировки могут привести к неожиданным изменениям в функциональности. В традиционном программировании система сразу обнаруживает такие нарушения функциональности и предоставляет кодеру отчет о причинах их возникновения, в среде ODP обнаружение таких нарушений происходит медленнее и сложнее.

 Вам также может понравиться: Плюсы и минусы языка программирования Elixir.

Примеры событийно-ориентированного программирования

веб-дизайн-разработка-кодирование-программирование

Сегодня программы, ориентированные на события, стали очень распространенным явлением. Наиболее популярные примеры включают обработку текстов, наборы инструментов для рисования, электронные таблицы и т. д. Большинство современных систем обмена сообщениями также следуют шаблонам, управляемым событиями, в то время как крупномасштабные веб-сайты используют масштабируемые, управляемые событиями архитектуры распределенного характера. ODP также занял прочное место в современных многозадачных ОС и различных средах программирования. Обладая такими преимуществами и высокой степенью интуитивной и гибкой настройки, ODP, несомненно, останется очень популярным вариантом кодирования в сообществе потребителей, желающих большей настройки и индивидуализации программного обеспечения, которое они используют.