jeudi 28 juin 2007

Handler, Context et Protocol et programmation asynchrone

Voici une façon de programmer que j'ai appris durant ma période chez Adamentium. Elle est très intéressante car elle permet une bonne mentenance du code, une bonne séparation des tâches possibles entre différents acteurs et un niveau d'interblocage du programme très faible.

Définissons ces termes et ce qu'ils impliquent.

Commençons par le dernier : la programmation asynchrone.

Ce terme indique que l'on conçoit et code son application de manière asynchrone, c'est-à-dire de manière non bloquante : une action qui lance un traitement n'attend pas qu'il se termine, mais le traitement prévient l'action qu'il est fini. C'est un peu principe utilisé dans Swing en Java : toute modification de l'interface graphique se fera le moment voulu et pas en direct au risque de geler l'application tout entière.

Cette programmation, du moins celle que je pratique, est basée sur les trois autres termes : protocol, context et handler.

Explications :
  • protocol : le protocol représente l'ensemble des données échangeables entre deux entités qui communique via ce protocol, les types de ces données et leurs règles et formats d'échanges entre deux objets.
  • handler : un handler est un objet de traitement spécifique d'un protocol donné.
  • context : le context est le conteneur d'informations obéissant au protocol que le handler reçoit à traiter.
L'avantage de ce ménage à trois est que le handler peut se trouver dans un thread différent de celui qui l'utilise étant donné que le traitement du context obéi à un protocol donné.
Ainsi on programme l'application un peu comme un ensemble de bulles indépendantes.

Aucun commentaire: