De event-georiënteerde programmering verwijst naar een model van computerprogrammering, waarbij de gebeurtenissen die plaatsvinden, worden gebruikt om de controlestroom van een programma te bepalen.
Het is geen soort technologie of programmeertaal, maar eerder een benadering die wordt geïmplementeerd tijdens de productontwikkelingsfase. In feite scheidt het de logica van de gebeurtenisverwerking van de rest van de code in een programma.
Dit type programmering is ontworpen om gebeurtenissen te ontdekken terwijl ze plaatsvinden, met behulp van een geschikte gebeurtenisafhandelingsprocedure om ze af te handelen, meestal door een functie of methode aan te roepen..
Theoretisch is de stijl van deze programmering compatibel met alle programmeertalen, hoewel het kan verschillen in de manier waarop het wordt geïmplementeerd.
Over het algemeen is er in een gebeurtenisgestuurde toepassing een hoofdlus die "luistert" naar nieuwe inkomende gebeurtenissen en een functieaanroep activeert wanneer ze worden gedetecteerd. Daarom is de werking ervan gericht op gebeurtenissen, waarbij wordt besloten wat uit te voeren en in welke volgorde.
Artikel index
De stroom van het programma wordt bepaald door gebeurtenissen die gebruikersacties kunnen zijn, berichten van andere programma's, enz., Waarbij de verwerkingslogica van de gebeurtenissen wordt gescheiden van de rest van de code van een programma, wat in contrast staat met batchverwerking..
De gebeurtenissen zelf kunnen variëren van het accepteren of afwijzen van een uitleenverzoek, een gebeurtenis op hoog niveau genoemd, tot een gebruiker die op een toets drukt, wat een gebeurtenis op laag niveau is..
Het wordt gebruikt om programma's te schrijven die zijn ontworpen voor service zonder de computer te vertragen, aangezien servicegerichtheid slechts weinig rekenkracht verbruikt. Bovendien draaien de services doorgaans op de achtergrond van het besturingssysteem..
Het is een aandoening die optreedt tijdens de uitvoering van een programma en die enige actie van het systeem vereist. Elke gebeurtenis is van nature anders, sommige vereisen dat het programma bepaalde informatie ophaalt en weergeeft, en andere om enkele berekeningen en toestandswijzigingen te starten..
Gebeurtenissen omvatten de muis, het toetsenbord, een gebruikersinterface en acties die in het programma moeten worden geactiveerd wanneer ze zich voordoen. Dit betekent dat de gebruiker interactie moet hebben met een object in het programma, zoals klikken op een muisknop, het toetsenbord gebruiken om een knop te selecteren, enz..
Het is een bepaalde eenheid van het programma die wordt geactiveerd om op een gebeurtenis te reageren. Dat wil zeggen, het is een type functie of methode die een specifieke actie uitvoert wanneer een bepaalde gebeurtenis wordt geactiveerd.
Het kan bijvoorbeeld een knop zijn die, wanneer de gebruiker erop klikt, een bericht weergeeft en wanneer ze nogmaals op die knop klikken, het bericht wordt gesloten.
Het zijn functies die beslissen welke code moet worden uitgevoerd wanneer een specifieke gebeurtenis plaatsvindt. Wordt gebruikt om te selecteren welke gebeurtenishandler moet worden gebruikt wanneer zich een gebeurtenis voordoet.
Het is een specifieke code die op een bepaald moment wordt uitgevoerd. Dit betekent dat het een vooraf ingestelde taak is die moet worden uitgevoerd.
Windows-update is een voorbeeld van gecontroleerde tijd, waar de gebruiker kan instellen wanneer de update moet worden bijgewerkt of wanneer de update moet worden gecontroleerd en gedownload.
Evenementgerichte programma's zijn heel gewoon geworden. Tot de meest prominente voorbeelden behoren tekstverwerking, tekengereedschappen, spreadsheets, enz..
De meeste moderne berichtensystemen volgen ook het gebeurtenisgestuurde patroon, terwijl grootschalige websites schaalbare en gebeurtenisgestuurde architecturen van gedistribueerde aard gebruiken. Andere voorbeelden zijn:
- Er is op een toets gedrukt (teksteditor).
- Een nieuwe takenkalender staat klaar om te worden verspreid onder alle medewerkers (managementsysteem).
- HTML-bericht ontvangen (webserver).
- Er is een illegaal handelspatroon gedetecteerd (fraudedetectie).
- Een auto in een computerspel botst met een andere auto (racespel).
- Een robot heeft zijn bestemming bereikt (magazijnbeheer in realtime).
Een praktisch voorbeeld van een evenement dat wordt gebruikt bij evenementgestuurde planning kan een werknemer zijn die een werkvergunning voor een systeem aanvraagt. Wanneer deze medewerker zijn verzoek doet, activeert hij een melding die ter goedkeuring naar de leidinggevende wordt gestuurd..
De manager kon de details van het verzoek inzien, goedkeuren of afwijzen, en het bijwerken in het systeem zonder de noodzaak om extra sessies te starten.
De acties van een programma dat de basisprincipes van evenementgerichte programmering volgt, worden geïnitieerd door evenementen:
- Hardware.
- Gepland.
- Looptijd.
- Van het besturingssysteem.
- Getriggerd door gebruikersinstructies gegeven door interactie met de GUI van het programma.
In de eenvoudigste modus moeten programmeurs de volgende vraag beantwoorden: "Wat moet er gebeuren als zich een bepaalde gebeurtenis voordoet?".
De volgende pseudo-coderoutine laat zien hoe een heel eenvoudige planner zou kunnen werken. Het bestaat uit een hoofdlus die continu loopt totdat er een beëindigingstoestand optreedt.
Wanneer een gebeurtenis plaatsvindt, moet de planner het gebeurtenistype bepalen en een geschikte gebeurtenishandler selecteren, of de gebeurtenis afhandelen als er geen geschikte gebeurtenishandler bestaat.
Vanwege de verspreiding van gegevens tussen meerdere processors en event-handlers.
Dit is het belangrijkste voordeel van gebeurtenisgeoriënteerd programmeren, waardoor de gebruikerservaring wordt verbeterd. Huidige gebruikers willen actief participeren en geen passieve consument blijven.
Daarom helpen op gebeurtenissen gebaseerde programma's gebruikers bij het navigeren door hun eigen ervaring en het verkennen van een verscheidenheid aan opties, zonder vooraf ingestelde beperkingen..
Deze programmeringsaanpak heeft veel voordelen voor alle belanghebbenden, aangezien er minder beslissingen hard gecodeerd hoeven te worden dan bij traditionele toepassingen..
Veel gebeurtenissen worden bepaald door gebruikersacties, in plaats van geavanceerde codering voor alle mogelijke scenario's. Terwijl traditionele applicaties werken, reageren gebeurtenisgestuurde applicaties.
Perfect geschikt voor recente trends in software-engineering, zoals cloud computing, microservices en de behoefte aan betere schaalbaarheid met flexibele en gedistribueerde systemen.
Elimineert de mogelijkheid van invoer met ongeldige waarden. Een traditionele applicatie stelt een vraag en laat de gebruiker een antwoord typen. Gebeurtenisgestuurde applicaties bieden meestal een reeks opties, hetzij als knoppen, hetzij als vervolgkeuzemenu's..
De noodzaak om bestaande code te corrigeren en aan te passen bij het toevoegen of verwijderen van modules is geëlimineerd. Het systeem blijft probleemloos functioneren, ongeacht een dergelijke aanpassing.
Daarom is deze programmering geschikt voor toepassingen met controlestromen die zijn gebaseerd op een reeks interne en externe gebeurtenissen, in plaats van op een structuur.
Deze programmeeraanpak is niet de beste optie voor kleine en eenvoudige applicaties, omdat de inspanningen die moeten worden geleverd niet zinnig blijken te zijn.
Het ontwikkelen van een gebeurtenisgestuurde applicatie verhoogt de complexiteit van systeemontwerp en -levering. Dit komt doordat traditionele softwarearchitecturen zijn gebaseerd op op verzoek gebaseerde interacties, in plaats van op gebeurtenisgestuurde interacties..
Bovendien is er ook veel voorbereiding nodig vanwege de behoefte aan onophoudelijk dynamische event-loops..
Opgemerkt moet worden dat gebeurtenisgeoriënteerde programmering de traditionele gestructureerde programmering niet vervangt, maar deze alleen aanvult.
Traditionele programmeermethodologieën zijn nog steeds essentieel voor het schrijven van het totale programma, terwijl de gebeurtenisgestuurde codeerelementen alleen dienen om de GUI te helpen ontwerpen..
De flexibiliteit van gebeurtenisgeoriënteerde programmering, wat het onbetwiste voordeel is, wordt in bepaalde scenario's ook een fraude. Een van die manifestaties is de onvoorspelbaarheid van een evenementgericht programma in het geval dat het verandert en een zwakkere controle over het systeem in het algemeen..
Hoewel codeerders graag gebeurtenisgestuurde programmering gebruiken om wrijvingsloze aanpassingen te maken, zoals het verwijderen of toevoegen van enkele functionele modules, kunnen deze aanpassingen leiden tot onverwachte wijzigingen in functionaliteit..
Bij conventionele programmering ontdekt het systeem deze operationele anomalieën zeer snel en geeft het de programmeur een rapport over de oorzaken ervan. In de event-driven programmeeromgeving is het opsporen van dergelijke storingen minder snel en eenvoudig.
Omdat gebeurtenisgestuurd programmeren meer een benadering dan een soort taal blijkt te zijn, kunnen gebeurtenisgestuurde applicaties in elke programmeertaal worden gemaakt..
Gebeurtenisgestuurd programmeren verandert de wereld van softwareontwikkelingsdiensten en wordt een integraal onderdeel van de huidige ontwikkeling. De verspreiding ervan werd gestimuleerd door Windows en de verspreiding van visuele omgevingen.
Een geval van een gebeurtenisgestuurde situatie zou lijken op een wektimer die is ingesteld om een specifieke taak op een bepaald tijdstip uit te voeren, zoals bellen en iets communiceren dat zegt: "Wakker worden!".
Deze planningsaanpak is gericht op gebeurtenissen. De meest voorkomende toepassingsgebieden zijn het maken van een grafische gebruikersinterface (GUI), servertoepassingen en de ontwikkeling van multiplayer-games..
Terwijl conventionele programma's de stroom van gebeurtenissen bepalen en controle hebben over gebruikersopties, diende deze meer innovatieve programmering om de GUI te creëren.
De GUI veranderde de interactie tussen mens en computer door gebruikers meerdere opties te bieden in de vorm van vervolgkeuzemenu's, vensters, knoppen en selectievakjes..
Daarom kunnen gebruikers, in plaats van de vooraf bepaalde volgorde van acties te volgen die door de computer zijn ingesteld, zelf een van de vele beschikbare opdrachten kiezen..
Naast dat deze programmering op grote schaal wordt toegepast in grafische gebruikersinterfaces, ook in applicaties die bepaalde acties uitvoeren als reactie op gebruikersinvoer, zoals JavaScript-webapplicaties..
Niemand heeft nog op dit artikel gereageerd.