Programmation événementielle : pourquoi est-elle à la mode ?
Publié: 2019-09-17La programmation événementielle (EDP) est en train de changer le monde des services de développement de logiciels et de devenir partie intégrante du développement d'aujourd'hui. Sa diffusion a été stimulée par Windows et la diffusion des environnements RAD visuels. Comme son nom l'indique, l'approche de la programmation se concentre sur les événements. Ce dernier peut être initié par l'utilisateur, systémique et généré par un programme. Les domaines d'application EDP les plus courants aujourd'hui incluent la création d'interfaces graphiques, d'applications serveur et le développement de jeux multijoueurs.
Contrairement aux programmes à l'ancienne contrôlant les options de l'utilisateur et prédéterminant le flux d'événements, une programmation plus adaptative et innovante a proposé une interface utilisateur graphique (GUI). L'interface graphique a modifié l'interaction homme-ordinateur en offrant aux utilisateurs plusieurs options sous la forme de menus déroulants, de fenêtres, de boutons et de cases à cocher. Ainsi, au lieu de suivre l'ordre prédéterminé des actions défini par l'ordinateur, les utilisateurs ont pu choisir eux-mêmes l'une des nombreuses commandes disponibles.
Qu'est-ce que la programmation événementielle ? Comment est-il mis en œuvre aujourd'hui ? Quels avantages et inconvénients offre-t-il aux codeurs, aux entreprises et aux utilisateurs finaux ? Quels exemples de cette approche de développement logiciel sont disponibles ?
Lisez ce guide complet que nous avons créé en association avec LitsLink pour trouver tout ce qui pourrait vous intéresser.
- Qu'est-ce que la programmation événementielle ?
- La gestion des événements au cœur de l'EDP
- Fonctionnalités des applications pilotées par les événements
- Langages de programmation événementiels
- Avantages de la programmation événementielle
- Inconvénients de la programmation événementielle
- Exemples de programmation événementielle
Qu'est-ce que la programmation événementielle ?
Alors que la programmation traditionnelle est linéaire et basée sur le flux d'exécution, avec des opérations s'exécutant sur une durée fixe ou jusqu'à atteindre des points de décision pré-écrits, la programmation événementielle progresse comme déclenchée par certains événements (par exemple, cliquer sur la souris, appuyer sur certaines touches sur le clavier, en sélectionnant une option dans un menu déroulant). Ce type de programmation est le plus courant pour les programmes dotés d'interfaces utilisateur graphiques (GUI). Dans le cas où il est utilisé, le programme attend que des événements se produisent et répond ensuite.
Traitons d'une terminologie d'introduction pour une meilleure idée de l'EDP.
- Evénement : un événement est une condition survenant pendant la durée de vie du programme et nécessitant certaines actions de la part du système d'exécution. Les événements sont différents par nature. Certains d'entre eux nécessitent que le programme récupère et affiche certaines informations. D'autres initient des calculs et changent d'état.
- Message : un message est une structure de données représentant un événement au moment de l'exécution. Il donne des informations sur le type d'événement et les paramètres nécessaires au programme pour le gérer.
- Gestionnaire d'événements : un gestionnaire d'événements est une certaine unité du programme activée pour réagir à l'événement.
- Boucle de messages : il s'agit d'un algorithme d'interrogation utilisé pour la mise en œuvre d'EDP via un examen continu de la file d'attente de messages et l'acheminement du trafic vers les gestionnaires d'événements.
Recommandé pour vous : Un guide pour débutants sur l'utilisation de Scala dans Apache Spark.
La gestion des événements au cœur de l'EDP
La gestion des événements constitue la base de l'EDP et distingue ce paradigme de programmation des autres. Les actions du programme suivant les principes fondamentaux de l'EDP sont initiées par des événements planifiés, des événements matériels, des événements du système d'exploitation, des événements d'exécution de langage et des événements déclenchés par les instructions de l'utilisateur fournies par l'interaction avec l'interface graphique du programme. Les programmeurs spécifient ces actions lors du développement du logiciel sous la forme de gestionnaires d'événements. Dans le sens le plus simple, les codeurs doivent répondre à la question "que doit-il se passer lorsqu'un événement spécifique se produit ?"
Le modèle EDP le plus basique est le modèle matériel. Elle suppose que le fonctionnement de l'unité centrale soit interrompu par tout stimulus extérieur nécessitant sa réponse. Dans de telles conditions, peu de traitement de l'événement est effectué par un gestionnaire d'interruption primitif, tandis que les fonctions de niveau supérieur du système d'exploitation restent intactes. Cependant, ce modèle est assez primitif, dépourvu de file d'attente de messages, alors que les systèmes ODP modernes fonctionnent différemment.
L'un des plus anciens outils de gestion d'événements en génie logiciel est la fonction de rappel. Il s'agit d'un modèle procédural EDP basé sur le modèle de table de vecteurs d'interruption. Les fonctions de rappel ont des interfaces prédéterminées, qui peuvent différer légèrement selon le type d'événement. Les types d'événements sont de petits nombres entiers au moment de l'exécution calculant la position de l'événement dans la table de rappel. La boucle de messages invoque la fonction de rappel lors de la découverte du message en tête de la file d'attente correspondant à ce type d'événement. Pour que la fonction soit exécutée dans le processus EDP, le langage de programmation dans lequel cela est fait doit fournir une méthode d'association d'événements à des fonctions de rappel spécifiques.
Fonctionnalités des applications pilotées par les événements

Les applications basées sur des événements diffèrent les unes des autres, en fonction de leurs objectifs et de leurs fonctionnalités. Néanmoins, ils doivent tous posséder un ensemble universel de fonctionnalités, telles que :
- L'abstraction de l'événement est souvent fournie explicitement sous forme de monade ;
- La capacité de synchronisation des événements ;
- Une implémentation de style de passage de continuation sous la forme d'un rappel ;
- Sources des événements primitifs.
Langages de programmation événementiels
Il est possible de créer des programmes pilotés par des événements dans n'importe quel langage de programmation moderne, tandis que Visual Basic, Visual C++ et Java sont spécifiquement adaptés à cette fin. Par exemple, les langages de programmation visuels Visual C++ et Visual Basic sont équipés d'une suite d'environnement de développement intégré (IDE) avec de nombreuses options de contrôle standard, des événements et des modèles de code de gestionnaire d'événements. Python est également utilisé comme outil informatique approprié.
Vous aimerez peut-être : Introduction à la programmation : un bref aperçu de Node JS, Laravel, React, Ruby, Vue et Python.
Avantages de la programmation événementielle
Cette approche du codage logiciel présente de nombreux avantages pour toutes les parties prenantes. Il nécessite moins de décisions codées que les applications console. De nombreux événements sont déterminés par les actions de l'utilisateur au lieu du codage avancé de tous les scénarios possibles. Alors que les applications basées sur la console agissent, les applications pilotées par les événements réagissent. Deuxièmement, cela supprime la possibilité d'une entrée de valeur invalide. Une application basée sur la console pose une question et permet à l'utilisateur de taper la réponse. Les applications basées sur les événements offrent généralement un ensemble d'options sous forme de boutons ou de menu déroulant.
ODP est parfaitement adapté aux tendances récentes de l'ingénierie logicielle, telles que le cloud computing, les microservices et le besoin d'une évolutivité améliorée avec des systèmes flexibles et distribués. L'utilisation d'ODP supprime le besoin de corriger et d'ajuster le code existant lors de l'ajout ou de la suppression de certains modules. Le système ODP continue de fonctionner parfaitement, quels que soient les ajustements de ce type. Ainsi, les programmeurs louent le paradigme ODP pour être intuitif et bien adapté aux applications avec des flux de contrôle basés sur un complexe d'événements internes et externes plutôt que sur la structure. Les autres avantages de l'ODP incluent :
- Utilisation de la programmation orientée objet comme base ;
- De meilleurs résultats de conception de logiciels ;
- Meilleure réactivité et flexibilité des programmes qui en découlent ;
- Traitement plus rapide grâce à la diffusion des données sur plusieurs processeurs et gestionnaires d'événements ;
- Évolutivité améliorée de l'application ;
- Meilleur couplage lâche.
Inconvénients de la programmation événementielle
L'un des inconvénients les plus fréquemment cités de la programmation basée sur les événements est le flux de contrôle complexe et la gestion manuelle de la pile. En raison de ces inconvénients, cette approche de codage n'est pas la meilleure option pour les petites applications simples, car les efforts ne sont pas raisonnables.
Par ailleurs, il faut garder à l'esprit que la programmation événementielle ne remplace pas la programmation structurée traditionnelle, mais ne fait que la compléter. Les techniques de programmation conventionnelles sont toujours essentielles pour écrire le programme réel, tandis que les éléments de codage événementiels peuvent aider à concevoir l'interface graphique.
La flexibilité de l'ODP, son avantage indiscutable, se transforme également en inconvénient dans certains scénarios. L'une de ces manifestations est l'imprévisibilité d'un programme ODP en cas de changements et un contrôle plus faible sur l'ensemble du système. Alors que les codeurs aiment ODP pour des ajustements sans friction, par exemple, la suppression ou l'ajout de certains modules fonctionnels, ces ajustements peuvent entraîner des altérations inattendues de la fonctionnalité. Dans la programmation traditionnelle, le système détecte immédiatement de telles anomalies de fonctionnalité et fournit un rapport au codeur sur leurs causes, dans l'environnement ODP, la détection de tels dysfonctionnements est plus lente et plus complexe.
Vous pourriez également aimer : Les avantages et les inconvénients du langage de programmation Elixir.
Exemples de programmation événementielle
Les programmes événementiels sont devenus très courants aujourd'hui. Les exemples les plus populaires incluent le traitement de texte, les boîtes à outils de dessin, les feuilles de calcul, etc. La majorité des systèmes de messagerie modernes suivent également les modèles événementiels, tandis que les sites Web à grande échelle utilisent les architectures évolutives et événementielles de nature distribuée. ODP a également revendiqué une place solide dans les systèmes d'exploitation multitâches modernes et une variété de cadres de programmation. Avec de tels avantages et un haut degré d'ajustement intuitif et flexible, ODP est sûr de rester une option de codage très populaire dans la communauté des consommateurs qui souhaitent plus de personnalisation et d'individualisation du logiciel qu'ils consomment.