programare orientată spre evenimente se referă la un model de programare computerizată, în care evenimentele care se întâmplă sunt utilizate pentru a determina fluxul de control al unui program.
Nu este un tip de tehnologie sau limbaj de programare, ci mai degrabă o abordare care este implementată în etapa de dezvoltare a produsului. Practic, separă logica de procesare a evenimentelor de restul codului dintr-un program.
Acest tip de programare este conceput pentru a descoperi evenimente pe măsură ce se întâmplă, utilizând o procedură adecvată de gestionare a evenimentelor pentru a le face față, de obicei apelând o funcție sau o metodă..
Teoretic, stilul acestei programări este compatibil cu toate limbajele de programare, deși poate fi diferit în modul în care este implementat.
În general, într-o aplicație bazată pe evenimente există o buclă principală care „ascultă” pentru evenimentele primite noi, declanșând un apel funcțional atunci când sunt detectate. Prin urmare, funcționarea sa se concentrează pe evenimente, decidând ce să execute și în ce ordine.
Indice articol
Fluxul programului este dat de evenimente care pot fi acțiuni ale utilizatorilor, mesaje din alte programe etc., separând logica de procesare a evenimentelor de restul codului unui program, contrastând astfel cu procesarea batch.
Evenimentele în sine pot varia de la acceptarea sau respingerea unei cereri de împrumut, numită eveniment de nivel înalt, până la un utilizator care apasă o tastă, care este un eveniment de nivel scăzut..
Este folosit pentru a scrie programe concepute pentru service fără a încetini computerul, deoarece orientarea către serviciu consumă doar o putere de procesare redusă. În plus, serviciile rulează în general în fundalul sistemului de operare..
Este o condiție care apare în timpul executării unui program și care necesită o acțiune din partea sistemului. Fiecare eveniment este diferit prin natură, unele necesită ca programul să recupereze și să afișeze anumite informații, iar altele să inițieze unele calcule și modificări de stare..
Evenimentele includ mouse-ul, tastatura, o interfață cu utilizatorul și acțiunile care ar trebui declanșate în program atunci când apar. Aceasta înseamnă că utilizatorul trebuie să interacționeze cu un obiect din program, cum ar fi să faceți clic pe butonul mouse-ului, să utilizați tastatura pentru a selecta un buton etc..
Este o anumită unitate a programului care este activată pentru a reacționa la un eveniment. Adică, este un tip de funcție sau metodă care execută o acțiune specifică atunci când este declanșat un anumit eveniment.
De exemplu, ar putea fi un buton care, atunci când utilizatorul face clic pe acesta, afișează un mesaj și când face clic pe butonul respectiv, închide din nou mesajul.
Sunt funcții care decid ce cod să execute atunci când apare un anumit eveniment. Folosit pentru a selecta care manipulator de evenimente să se utilizeze atunci când are loc un eveniment.
Este un cod specific care rulează la un anumit moment. Aceasta înseamnă că este o sarcină prestabilită de făcut.
Actualizarea Windows este un exemplu de timp controlat, în care utilizatorul poate seta când să actualizeze sau când să verifice și să descarce actualizarea.
Programele orientate spre evenimente au devenit foarte frecvente. Printre cele mai proeminente exemple se numără procesarea textelor, instrumentele de desen, foi de calcul etc..
Majoritatea sistemelor de mesagerie moderne urmează și modelul bazat pe evenimente, în timp ce site-urile web la scară largă utilizează arhitecturi scalabile și bazate pe evenimente de natură distribuită. Alte exemple sunt:
- A fost apăsată o tastă (editor de text).
- Un nou calendar de sarcini este gata să fie distribuit tuturor angajaților (sistem de management).
- Mesaj HTML primit (server web).
- A fost detectat un model de comerț ilegal (detectarea fraudelor).
- O mașină dintr-un joc pe computer se ciocnește cu o altă mașină (joc de curse).
- Un robot a ajuns la destinație (gestionarea depozitului în timp real).
Un exemplu practic de eveniment utilizat în programarea bazată pe evenimente ar putea fi un angajat care solicită un permis de muncă pe un sistem. Când acest angajat își emite cererea, va activa o notificare care va fi trimisă managerului pentru aprobare..
Managerul putea vizualiza detaliile cererii, aproba sau respinge, actualizând-o în sistem fără a fi nevoie să înceapă sesiuni suplimentare.
Acțiunile unui program care urmează fundamentele programării orientate spre evenimente sunt inițiate de evenimente:
- Hardware.
- Programat.
- Timp de rulare.
- Din sistemul de operare.
- Declanșat de instrucțiunile de utilizare date prin interacțiunea cu GUI-ul programului.
În modul său cel mai simplu, programatorii trebuie să răspundă la următoarea întrebare: „Ce ar trebui să se întâmple când apare un anumit eveniment?”.
Următoarea rutină de pseudo-cod arată cum ar putea funcționa un programator foarte simplu. Acesta constă dintr-o buclă principală care rulează continuu până când apare o anumită condiție de terminare.
Când apare un eveniment, planificatorul trebuie să determine tipul de eveniment și să selecteze un gestionar de evenimente adecvat sau să gestioneze evenimentul dacă nu există un gestionar de evenimente adecvat.
Datorită propagării datelor între mai multe procesoare și gestionare de evenimente.
Acesta este cel mai important avantaj al programării orientate spre evenimente, îmbunătățind experiența utilizatorului. Utilizatorii actuali vor să participe activ și să nu rămână consumatori pasivi.
Prin urmare, programele bazate pe evenimente îi ajută pe utilizatori să își navigheze propria experiență și să exploreze o varietate de opțiuni, fără restricții prestabilite..
Această abordare de programare are multe beneficii pentru toate părțile interesate, deoarece sunt necesare mai puține decizii pentru a fi codificate greu decât aplicațiile tradiționale..
Multe evenimente sunt determinate de acțiunile utilizatorului, mai degrabă decât de a avea codare avansată pentru toate scenariile posibile. În timp ce aplicațiile tradiționale acționează, aplicațiile bazate pe evenimente reacționează.
Perfect adaptat tendințelor recente de inginerie software, cum ar fi cloud computing, microservicii și nevoia unei scalabilități mai bune cu sisteme flexibile și distribuite.
Elimină posibilitatea intrărilor cu valori nevalide. O aplicație tradițională pune o întrebare și permite utilizatorului să introducă un răspuns. Aplicațiile bazate pe evenimente oferă de obicei un set de opțiuni, fie ca butoane, fie ca meniuri derulante..
Necesitatea de a corecta și regla codul existent atunci când adăugați sau eliminați module este eliminată. Sistemul continuă să funcționeze fără probleme, indiferent de o astfel de reglare.
Prin urmare, această programare este potrivită pentru aplicații cu fluxuri de control bazate pe un set de evenimente interne și externe, mai degrabă decât pe o structură.
Această abordare de programare nu este cea mai bună opțiune pentru aplicații mici și simple, deoarece eforturile care trebuie depuse nu se dovedesc a fi sensibile.
Dezvoltarea unei aplicații bazate pe evenimente crește complexitatea proiectării și livrării sistemului. Acest lucru se datorează faptului că arhitecturile software tradiționale se bazează pe interacțiuni bazate pe cerere, mai degrabă decât pe interacțiuni bazate pe evenimente..
Mai mult, este necesară o mare pregătire datorită necesității unor bucle de evenimente neîncetat dinamice..
Trebuie remarcat faptul că programarea orientată spre evenimente nu înlocuiește programarea structurată tradițională, ci doar o completează.
Metodologiile tradiționale de programare sunt încă esențiale pentru scrierea programului general, în timp ce elementele de codare bazate pe evenimente servesc doar pentru a ajuta la proiectarea GUI..
Flexibilitatea programării orientate spre evenimente, care este avantajul său incontestabil, devine, de asemenea, o fraudă în anumite scenarii. Una dintre aceste manifestări este imprevizibilitatea unui program orientat spre evenimente în cazul în care acesta are modificări și un control mai slab asupra sistemului în general..
Deși programatorilor le place să utilizeze programarea bazată pe evenimente pentru a face ajustări fără frecare, cum ar fi eliminarea sau adăugarea unor module funcționale, aceste ajustări pot duce la modificări neașteptate ale funcționalității..
În programarea convențională, sistemul descoperă foarte repede aceste anomalii operaționale, oferind un raport programatorului despre cauzele lor. În mediul de programare bazat pe evenimente, detectarea unor astfel de defecțiuni este mai puțin rapidă și mai ușoară.
Deoarece programarea bazată pe evenimente se dovedește a fi mai mult o abordare decât un tip de limbaj, aplicațiile bazate pe evenimente pot fi create în orice limbaj de programare..
Programarea bazată pe evenimente transformă lumea serviciilor de dezvoltare software și devine o parte integrantă a dezvoltării actuale. Difuzarea sa a fost stimulată de Windows și difuzarea mediilor vizuale.
Un caz de situație determinată de eveniment seamănă cu un temporizator de trezire setat pentru a face o anumită sarcină la un anumit moment, cum ar fi sunarea și comunicarea a ceva care spune: „Trezește-te!.
Această abordare de planificare este axată pe evenimente. Cele mai frecvente domenii de aplicații includ crearea interfeței grafice a utilizatorului (GUI), aplicații server și dezvoltarea de jocuri multiplayer..
În timp ce programele convenționale stabilesc fluxul de evenimente și au control asupra opțiunilor utilizatorului, această programare mai inovatoare a servit la crearea interfeței grafice.
GUI a schimbat interacțiunea om-computer oferind utilizatorilor mai multe opțiuni sub formă de meniuri derulante, ferestre, butoane și casete de selectare..
Prin urmare, în loc să urmeze ordinea prestabilită a acțiunilor setată de computer, utilizatorii pot alege singuri una dintre numeroasele comenzi disponibile..
Pe lângă faptul că această programare este aplicată pe scară largă în interfețele grafice ale utilizatorului, și în aplicațiile care efectuează anumite acțiuni ca răspuns la intrarea utilizatorului, cum ar fi aplicațiile web JavaScript..
Nimeni nu a comentat acest articol încă.