fwtozza_ — des composants qui ne se connaissent pas

Un framework pour écrire des applications en composants qui s'échangent des messages validés par contrat, sans build, dans le navigateur et sur le serveur. Ce site vous accompagne pour vous l'approprier, en JavaScript.

Le problème, en une phrase

Des composants qui se connaissent trop, et des données qui circulent sans contrat : au bout de quelques semaines, personne ne sait plus qui appelle qui ni ce que contient vraiment un objet qu'on se passe de main en main.

La réponse, en une image

catalogue les contrats, en pure donnée broker aiguille et valide ChatBox publish(…) canal handleMessage(…) Notifier handleMessage(…) Survolez le schéma pour voir un message circuler.
Un objet publie, le broker valide contre le catalogue, puis livre à chaque abonné une copie privée. Un abonné peut être un canal vers un autre broker, sur une autre machine.

Trois promesses

Aucun build

Modules ES natifs. Le fichier qui s'exécute est le fichier qui a été écrit : on peut toujours dire qu'on l'a lu.

Un composant ne dépend que du broker

Jamais d'import d'un autre composant, jamais de singleton : ce qu'il ne reçoit pas à la construction, il ne l'a pas.

Un contrat ne se modifie jamais

On révise ou on versionne, en snapshot complet. Le broker complète les anciens émetteurs, et refuse ce qui ne respecte pas la révision déclarée.

Démo : le chat, en direct dans cette page

Deux navigateurs et un serveur tournent ici même, avec le vrai broker.js, le vrai engine.js, les vrais catalogues et composants du chat. Seul le canal réseau est remplacé par un canal en mémoire. Identifiez-vous dans chaque navigateur avec un pseudo différent, écrivez, puis cochez le mode verbeux pour voir chaque broker recevoir, valider et livrer.

Ouvrir la démo dans un onglet, avec trois navigateurs · Lire le chat fichier par fichier · Télécharger le chat complet (zip)

Par où commencer

  1. Le modèle en 10 minutes : message, catalogue, broker, objet standard, canal.
  2. Premier projet en 30 minutes : un bouton, une pile, un broker, sans serveur.
  3. Les tutos progressifs, jusqu'à reconstruire le chat complet.
  4. La référence, à consulter quand la console vous parle.