La notion de message en programmation
Au début de l’informatique, le concept de message était assez large, désignant une transmission de données entre des objets (appels de fonctions, système événementiel, etc.). De nos jours, un message se définit plutôt comme une communication émise dans un bus (généralement asynchrone, mais pas exclusivement).
Bien qu’un message émis sur un bus soit un concept générique, il est important de le nommer correctement, comme tout élément du code. Tout comme il est préférable d’éviter de nommer des services de manière générique, tels queUserService
ou ProductManager
, il est important de nommer un message en fonction de sa responsabilité.
Partant de ce principe, on peut distinguer trois grandes familles de messages ayant chacune leur raison d’être :
- Les
commandes
(Commmand): il s’agit de messages qui vont permettre de modifier l’état du système. Ces deniers sont généralement traités par un seul récepteur. Ce type de message est généralement nommé en commençant par un verbe permettant d’indiquer l’action qui va être effectuée (exemple:CreateClientAccount
). - Les
requêtes
(Query): les requêtes permettent de lire et récupérer de la donnée. Tout comme les commandes, elles sont généralement également traitées par un seul récepteur et vont également commencer par un verbe (exemple:GetUsersListing
). - Les
événements
(Event): ce dernier type de message permet d’indiquer que “quelque chose” s’est passé dans le système. Ils sont généralement nommés au participe passé et peuvent être gérés par plusieurs écouteurs (exemple:OrderShipped
). Les événements peuvent également servir à la communication entre plusieurs systèmes informatiques.
Accordez une attention particulière au nommage de vos messages. Nommez ces derniers en fonction de leur intention et responsabilité et non pas en fonction de l’état de votre système. Cela permettra de rendre votre code plus explicite et donc plus facilement compréhensible.