- Особливості програмування, орієнтованого на події
- Залежність від подій
- Сервіс-орієнтований
- Події
- Контролер
- Тригерні функції
- Контрольований часом
- Приклади керованого подіями програмування
- Дозвіл на роботу
- Ініціювання дій
- Перевага
- Швидша обробка
- Інтерактивність
- Менше кодування рішень
- Гнучкість
- Дійсні квитки
- Простота обслуговування
- Недоліки
- Складний контрольний потік
- Це не замінює структурованого програмування
- Гнучкість
- Програми
- Графічний інтерфейс користувача
- Список літератури
Програмування на основі подій відноситься до моделі комп'ютерного програмування, де використовуються події, які трапляються для визначення потоку управління програмою.
Це не тип технології чи мови програмування, а скоріше підхід, який реалізується на етапі розробки продукту. В основному, він відокремлює логіку обробки подій від решти коду програми.
Цей тип програмування призначений для виявлення подій у процесі їх події, використовуючи відповідну процедуру обробки подій для боротьби з ними, як правило, за допомогою виклику функції або методу.
Теоретично стиль цього програмування сумісний з усіма мовами програмування, хоча він може відрізнятися за способом його реалізації.
Загалом, у застосуванні, керованому подіями, є основний цикл, який "слухає" нові вхідні події, ініціюючи виклик функції при їх виявленні. Тому його функціонування фокусується на подіях, вирішуючи, що виконувати та в якому порядку.
Особливості програмування, орієнтованого на події
Джерело: pixabay.com
Залежність від подій
Потік програми задається подіями, які можуть бути користувачами, повідомленнями від інших програм тощо, відокремлюючи логіку обробки подій від решти коду програми, таким чином, контрастуючи з пакетною обробкою.
Самі події можуть варіюватися від прийняття або відхилення запиту на позику, званого події високого рівня, до того, як користувач натисне клавішу, яка є події низького рівня.
Сервіс-орієнтований
Він використовується для запису програм, призначених для обслуговування без уповільнення роботи комп’ютера, оскільки орієнтація на службу споживає лише невелику потужність обробки. Також послуги, як правило, працюють у фоновому режимі операційної системи.
Події
Це умова, яка виникає під час виконання програми і вимагає певних дій з боку системи. Кожна подія має різний характер, деякі вимагають, щоб програма отримувала та відображала певну інформацію, а інші вимагають ініціювати деякі обчислення та зміни стану.
Події включають мишу, клавіатуру, користувальницький інтерфейс та дії, які повинні бути запущені в програмі під час їх виникнення. Це означає, що користувач повинен взаємодіяти з об’єктом у програмі, наприклад, натисканням кнопки миші, за допомогою клавіатури для вибору кнопки тощо.
Контролер
Це певний підрозділ програми, який активується для реагування на подію. Тобто це тип функції або метод, який виконує конкретну дію, коли спрацьовує певна подія.
Наприклад, це може бути кнопка, коли при натисканні користувачем на нього відображається повідомлення, а коли він натискає цю кнопку, знову закривається повідомлення.
Тригерні функції
Вони є функціями, які визначають, який код виконати, коли відбувається конкретна подія. Вони використовуються для вибору, який обробник подій використовувати при виникненні події.
Контрольований часом
Це специфічний код, який працює в певний час. Це означає, що це завдання, яке потрібно виконати.
Оновлення Windows - приклад контрольованого часу, коли користувач може встановити, коли потрібно оновлювати або коли перевіряти та завантажувати оновлення.
Приклади керованого подіями програмування
Програми, орієнтовані на події, стали дуже поширеними. Серед найвизначніших прикладів - обробка текстів, інструменти для малювання, електронні таблиці тощо.
Більшість сучасних систем обміну повідомленнями також дотримуються моделей, керованих подіями, тоді як великі веб-сайти використовують масштабовані та керовані подіями архітектури розподіленого характеру. Інші приклади:
- була натиснута клавіша (текстовий редактор).
- Новий календар завдань готовий до розповсюдження на весь персонал (система управління).
- Отримано HTML-повідомлення (веб-сервер).
- виявлено незаконну модель торгівлі (виявлення шахрайства).
- Автомобіль у комп’ютерній грі стикається з іншим автомобілем (гоночна гра).
- Робот досяг свого призначення (управління складом в режимі реального часу).
Дозвіл на роботу
Практичним прикладом події, яка використовується в програмуванні на основі подій, може бути працівник, який подає заяву на отримання дозволу на роботу в системі. Коли цей працівник видає свій запит, він активує повідомлення, яке буде надіслано менеджеру для затвердження.
Менеджер може переглядати деталі запиту, затверджувати або відхиляти його, оновлюючи його в системі без необхідності ініціювати додаткові сеанси.
Ініціювання дій
Дії програми, яка відповідає принципам орієнтованого на події програмування, ініціюються подіями:
- апаратне забезпечення.
- За розкладом.
- Час виконання.
- З операційної системи.
- Активується вказівками користувача, наданими в результаті взаємодії з графічним інтерфейсом програми.
У своєму найпростішому режимі програмістам доводиться відповідати на питання: "Що повинно статися, коли відбудеться певна подія?"
Наведена нижче псевдокодова програма показує, як може працювати дуже простий планувальник. Він складається з основного циклу, який працює постійно, поки не настане деяка умова припинення.
Коли подія відбувається, планувальник повинен визначити тип події та вибрати відповідний обробник подій або обробляти подію, якщо відповідний обробник подій не існує.
Перевага
Швидша обробка
Завдяки розповсюдженню даних між декількома процесорами та обробниками подій.
Інтерактивність
Це найважливіша перевага програмування, орієнтованого на події, поліпшення роботи користувачів. Сьогоднішні користувачі хочуть активно брати участь і не залишатися пасивними споживачами.
Тому програми, що базуються на заходах, допомагають користувачам орієнтуватися на власний досвід та досліджувати різноманітні варіанти, без попередньо встановлених обмежень.
Менше кодування рішень
Такий підхід до програмування має багато переваг для всіх зацікавлених сторін, оскільки для кодування потрібно менше рішень, ніж традиційні програми.
Багато подій визначаються діями користувача, а не розширеним кодуванням для всіх можливих сценаріїв. У той час як традиційні програми діють, додатки, що керуються подіями, реагують.
Гнучкість
Він ідеально підходить для останніх тенденцій інженерії програмного забезпечення, таких як хмарні обчислення, мікросервіси та необхідність кращої масштабованості з гнучкими та розподіленими системами.
Дійсні квитки
Виключає можливість записів з недійсними значеннями. Традиційна програма задає питання і дозволяє користувачеві ввести відповідь. Програми, керовані подіями, зазвичай пропонують набір опцій, як кнопки, так і як спадні меню.
Простота обслуговування
Необхідність виправлення та коригування наявного коду при додаванні або видаленні модулів усувається. Система продовжує працювати безперебійно незалежно від будь-якої такої настройки.
Тому це програмування підходить для застосувань з потоками управління на основі набору внутрішніх і зовнішніх подій, а не на основі структури.
Недоліки
Складний контрольний потік
Такий підхід до програмування - не найкращий варіант для невеликих і простих додатків, оскільки зусилля, які потрібно докласти, не виявляються розумними.
Розробка додатку, керованого подіями, збільшує складність проектування та доставки системи. Це пояснюється тим, що традиційні архітектури програмного забезпечення базуються на взаємодії на основі запиту, а не на подіях.
Крім того, необхідна велика підготовка через необхідність постійно динамічних циклів подій.
Це не замінює структурованого програмування
Слід зазначити, що орієнтоване на події програмування не замінює традиційне структуроване програмування, а лише доповнює його.
Традиційні методології програмування залишаються важливими для написання загальної програми, тоді як елементи кодування, керовані подіями, слугують лише для розробки графічного інтерфейсу.
Гнучкість
Гнучкість планування, орієнтованого на події, що є його безперечною перевагою, також перетворюється на шахрайство в певних сценаріях. Одним із таких проявів є непередбачуваність програми, орієнтованої на події, якщо вона має зміни та слабший контроль над загальною системою.
Хоча кодери люблять використовувати програмування, кероване подіями, для того, щоб внести регулювання без тертя, такі як видалення або додавання деяких функціональних модулів, ці налаштування можуть призвести до несподіваних змін у функціональності.
У звичайному програмуванні система дуже швидко виявляє ці операційні аномалії, надаючи звіту програмісту про їх причини. У середовищі програмування, орієнтованому на події, виявлення таких несправностей є менш швидким та простим.
Програми
Оскільки програмоване керування подіями виявляється скоріше підходом, ніж типом мови, додатки на основі подій можуть створюватися на будь-якій мові програмування.
Програмування на основі подій перетворює світ послуг з розробки програмного забезпечення та стає невід'ємною частиною сьогоднішнього розвитку. Його дифузію стимулювали Windows та розповсюдження візуальних середовищ.
Випадок події, що спричиняє події, буде нагадувати таймер пробудження, встановлений для виконання певного завдання в певний час, наприклад дзвінок та повідомлення про щось, що говорить: "Прокинься!"
Графічний інтерфейс користувача
Цей підхід до планування орієнтований на події. Найпоширеніші сфери його застосування включають створення графічного інтерфейсу користувача (GUI), серверних додатків та розробки багатокористувацьких ігор.
У той час як звичайні програми встановлюють потік подій і контролюють користувацькі параметри, це більш інноваційне програмування слугувало для створення графічного інтерфейсу.
Графічний інтерфейс змінив взаємодію між людиною та комп'ютером, запропонувавши користувачам кілька варіантів у вигляді випадаючих меню, вікон, кнопок та прапорців.
Тому, замість того, щоб дотримуватися заздалегідь визначеного порядку дій, встановлених комп’ютером, користувачі можуть самостійно вибрати одну з багатьох доступних команд.
Крім того, що це програмування широко застосовується в графічних інтерфейсах користувача, воно також широко застосовується в додатках, які виконують певні дії у відповідь на введення користувача, наприклад веб-додатки JavaScript.
Список літератури
- Raspal Chima (2018). Програми, керовані подіями в розробці програмного забезпечення Консультанти з чорниці. Взято з: bbconsult.co.uk.
- Кворум (2020). Створення програм - Урок 1: Вступ до програмування, керованого подіями Взято з: quorumlanguage.com.
- Маргарет Руус (2012). Додаток, керований подіями Techtarget. Взято з: searchitoperations.techtarget.com.
- Нариси Великобританії (2018). Особливості програмування, керовані подіями Взято з: ukessays.com.
- Сувік Банерджі (2019). Програмування, кероване подіями: чому це зараз тенденція? RS Websols. Взято з: rswebsols.com.
- Техопедія (2018). Програма, керована подіями Взяті з: plasmapedia.com.
- Технологія Великобританії (2020). Програмування на основі подій Взято з: technologyuk.net.