- Значајке програмирања оријентисаног на догађаје
- Зависност од догађаја
- Сервисно оријентисан
- Догађаји
- Цонтроллер
- Функције окидача
- Временски контролисан
- Примери програмирања заснованог на догађајима
- Радна дозвола
- Иницирање акција
- Предност
- Бржа обрада
- Интерактивност
- Мање кодирања одлука
- Флексибилност
- Важеће карте
- Једноставно одржавање
- Недостаци
- Сложени контролни проток
- Не замењује структурирано програмирање
- Флексибилност
- Апликације
- Графички кориснички интерфејс
- Референце
Програмирање засновано на догађајима односи се на модел рачунарског програмирања, где се користе догађаји који одређују контролни ток програма.
То није врста технологије или програмског језика, већ приступ који се примењује у фази развоја производа. У основи, он раздваја логику обраде догађаја од остатка кода у програму.
Ова врста програмирања осмишљена је тако да открива догађаје који се догађају, користећи одговарајући поступак руковања догађајима да се с њима суочи, обично позивањем функције или методе.
Теоретски, стил овог програма је компатибилан са свим програмским језицима, мада се може разликовати у начину на који се проводи.
Генерално, у апликацији која се заснива на догађајима постоји главна петља која „преслушава“ нове долазне догађаје, покрећући позив функције када су откривени. Стога се његово деловање фокусира на догађаје, одлучује шта извршити и којим редоследом.
Значајке програмирања оријентисаног на догађаје
Извор: пикабаи.цом
Зависност од догађаја
Ток програма дат је догађајима који могу бити корисничке акције, поруке других програма, итд., Одвајајући логику обраде догађаја од остатка кода програма, контрастирајући тако са скупном обрадом.
Сами догађаји могу варирати од прихватања или одбијања захтева за кредит, званог догађај високог нивоа, до корисничког притиска на тастер, што је догађај нижег нивоа.
Сервисно оријентисан
Користи се за писање програма дизајнираних за сервис без успоравања рачунара, јер оријентација сервиса троши само мало процесорске снаге. Такође, услуге углавном раде у позадини оперативног система.
Догађаји
То је услов који настаје током извршења програма и који захтева одређене акције од стране система. Сваки догађај је различите природе, неки захтијевају да програм преузме и прикаже одређене информације, а други захтијевају покретање одређених калкулација и промјена стања.
Догађаји укључују миш, тастатуру, кориснички интерфејс и радње које би требале бити покренуте у програму када се појаве. То значи да корисник мора комуницирати с објектом у програму, попут клика на типку миша, помоћу типковнице за одабир гумба итд.
Цонтроллер
То је одређена јединица програма која се активира да реагује на догађај. Односно, то је врста функције или метода која извршава одређену радњу када се покрене одређени догађај.
На пример, то може бити дугме које када корисник кликне на њега прикаже поруку и кад кликне на то дугме поново затвори поруку.
Функције окидача
То су функције које одређују који ће се код извршити када се догоди одређени догађај. Користе се за избор ког ће се руковаоца догађаја користити када се догоди догађај.
Временски контролисан
То је посебан код који се покреће у одређено време. То значи да је то задати задатак који треба обавити.
Ажурирање система Виндовс је пример контролисаног времена, где корисник може да подеси када треба да ажурира или када да провери и преузме исправку.
Примери програмирања заснованог на догађајима
Програми оријентисани према догађајима постали су врло уобичајени. Међу најистакнутијим примерима су обрада текста, алати за цртање, прорачунске таблице итд.
Већина модерних система за размену порука такође следи модел који се заснива на догађајима, док веб веб локације користе скалабилне и евент-архитектуре дистрибуиране природе. Остали примери су:
- Притиснута је типка (уређивач текста).
- Нови календар задатака је спреман за дистрибуцију свим запосленима (систем управљања).
- Примљена је ХТМЛ порука (веб сервер).
- Откривен је нелегални образац трговине (откривање преваре).
- Аутомобил у рачунарској игри судара се са другим аутомобилом (тркачка игра).
- Робот је стигао до свог одредишта (управљање складиштем у реалном времену).
Радна дозвола
Практични пример догађаја који се користи у програмирању заснованом на догађајима може бити запослени који се пријављују за радну дозволу на систему. Када овај запослени изда свој захтев, активираће обавештење које ће бити послато менаџеру на одобрење.
Менаџер може прегледати детаље захтева, одобрити га или одбити, ажурирајући га у систему без потребе за покретањем додатних сесија.
Иницирање акција
Радње програма који слиједе основе програмирања оријентисаног на догађаје покрећу догађаји:
- Хардвер.
- По распореду.
- Време извршења.
- Из оперативног система.
- Активирају се упутства корисника дата интеракцијом с ГУИ програма.
Програмери у свом најједноставнијем режиму морају да одговоре на питање: "Шта би требало да се догоди када се догоди одређени догађај?"
Следећа рутина псеудо-кода показује како веома једноставан планер може радити. Састоји се од главне петље која траје непрекидно док се не догоди неко стање прекида.
Када се догађај догоди, планер мора одредити врсту догађаја и одабрати одговарајући руковатељ догађаја или руковати догађајем ако не постоји одговарајући руковатељ догађаја.
Предност
Бржа обрада
Због ширења података између више процесора и обрађивача догађаја.
Интерактивност
То је најважнија предност програмирања оријентисаног на догађаје, унапређења корисничког искуства. Данашњи корисници желе активно учествовати и не остати пасивни потрошачи.
Стога програми засновани на догађајима помажу корисницима да се снађу у сопственом искуству и истражују различите могућности, без унапред постављених ограничења.
Мање кодирања одлука
Овај приступ програмирању има бројне предности за све заинтересоване стране, јер је потребно мање одлука за кодирање од традиционалних апликација.
Многи догађаји су одређени радњама корисника, а не напредним кодирањем за све могуће сценарије. Док дјелују традиционалне апликације, апликације усмјерене на догађаје реагирају.
Флексибилност
Потпуно је прилагођен најновијим трендовима софтверског инжењеринга као што су рачунари у облаку, микро сервиси и потреба за бољом скалабилношћу флексибилних и дистрибуираних система.
Важеће карте
Елиминише могућност уноса са неважећим вредностима. Традиционална апликација поставља питање и омогућава кориснику да упише одговор. Апликације засноване на догађајима обично нуде скуп опција, било као тастера или као падајућих менија.
Једноставно одржавање
Потреба за исправљањем и прилагођавањем постојећег кода приликом додавања или уклањања модула је елиминисана. Систем и даље несметано ради без обзира на било које такво прилагођавање.
Стога је ово програмирање погодније за апликације са контролним токовима на основу скупа унутрашњих и спољних догађаја, а не на основи структуре.
Недостаци
Сложени контролни проток
Овај приступ програмирању није најбоља опција за мале и једноставне апликације, јер напори који се морају уложити не показују се разумним.
Развој апликације засноване на догађајима повећава сложеност дизајна и испоруке система. То је зато што се традиционалне софтверске архитектуре заснивају на интеракцијама заснованим на захтевима, а не на догађајима.
Поред тога, потребна је и велика припрема због потребе за непрекидним динамичким петљама догађаја.
Не замењује структурирано програмирање
Треба напоменути да програмирање оријентисано на догађаје не замењује традиционално структурирано програмирање, већ га само допуњава.
Традиционалне програмске методологије остају од суштинског значаја за писање целокупног програма, док елементи кодирања засновани на догађајима служе само као помоћ у дизајнирању ГУИ-ја.
Флексибилност
Флексибилност планирања оријентисаног на догађаје, што је његова неспорна предност, такође се претвара у превару у одређеним сценаријима. Једна од тих манифестација је непредвидивост програма оријентисаног на догађаје у случају да има промене и слабију контролу над целокупним системом.
Иако кодери воле да користе програмирање засновано на догађајима да би извршили прилагођавања без трења, попут уклањања или додавања неких функционалних модула, ова подешавања могу довести до неочекиваних поремећаја у функцији.
У конвенционалном програмирању систем веома брзо открива ове оперативне аномалије, пружајући извештају програмеру о њиховим узроцима. У програмском окружењу заснованом на догађајима откривање таквих кварова је мање брзо и једноставно.
Апликације
Будући да се програмирање засновано на догађајима покаже више као приступ него врста језика, апликације засноване на догађајима могу се креирати на било којем програмском језику.
Програмирање засновано на догађајима трансформише свет услуга развоја софтвера и постаје саставни део данашњег развоја. Дифузију је подстакао Виндовс и ширење визуелног окружења.
Случај догађаја вођен догађајем личи на тајмер буђења који је одређен у одређеном тренутку, попут звоњаве и саопштавања нечега што каже: "Пробуди се!"
Графички кориснички интерфејс
Овај приступ заказивању је фокусиран на догађаје. Његова најчешћа подручја примене укључују креирање графичког корисничког интерфејса (ГУИ), серверских апликација и развој игара за више играча.
Док конвенционални програми успостављају ток догађаја и имају контролу над корисничким опцијама, ово иновативније програмирање служи за креирање ГУИ-ја.
ГУИ је променио интеракцију између човека и рачунара нудећи корисницима више опција у облику падајућих менија, прозора, тастера и потврдних оквира.
Стога, уместо да прате унапред одређени редослед радњи које је поставио рачунар, корисници могу сами да одаберу једну од многих доступних команди.
Поред тога што се ово програмирање широко примењује у графичким корисничким интерфејсима, оно се такође широко примењује у апликацијама које изводе одређене акције као одговор на унос корисника, као што су ЈаваСцрипт веб апликације.
Референце
- Распал Цхима (2018). Апликације вођене догађајима у развоју софтвера. Блуеберри Цонсултантс. Преузето са: ббцонсулт.цо.ук.
- Кворум (2020). Израда апликација - Лекција 1: Увод у програмирање вођено догађајем. Преузето са: куорумлангуаге.цом.
- Маргарет Роусе (2012). Апликација заснована на догађајима. Тецхтаргет. Преузето са: сеарцхитоператионс.тецхтаргет.цом.
- УК Ессаис (2018). Функције програмирања према догађајима Преузето са: укессаис.цом.
- Соувик Банерјее (2019). Програмирање на основу догађаја: Зашто је то сада у тренду? РС Вебсолс. Преузето са: рсвебсолс.цом.
- Техопедиа (2018). Програм вођен догађајима. Преузето са: роофпедиа.цом.
- Тецхнологи УК (2020). Програмирање засновано на догађајима. Преузето са: тецхнологиук.нет.