Futures / Monades vs événements

10

Dans un cadre d'application où l'impact sur les performances peut être ignoré (10-20 événements par seconde au maximum),
quoi de plus maintenable et flexible à utiliser comme moyen de communication préféré entre les modules - Événements ou Futurs / Promesses / Monades ?

On dit souvent que les événements (pub / sub, médiateur) permettent un couplage lâche et donc - une application plus maintenable ... Mon expérience le nie: une fois que vous avez plus de 20+ événements - le débogage devient difficile, tout comme la refactorisation - car il est très difficile de voir: qui, quand et pourquoi utilise quoi.

Les promesses (je code en Javascript) sont beaucoup plus laides et plus bêtes que les événements. Mais: vous pouvez clairement voir les connexions entre les appels de fonction, de sorte que la logique d'application devient plus simple. Ce que j'ai peur. cependant, est que Promises apportera plus de couplage dur avec eux ...

ps: la réponse ne doit pas être basée sur JS, l'expérience d'autres langages fonctionnels est la bienvenue.

c69
la source
2
On dit souvent que les événements (pub / sub, médiateur) permettent un couplage lâche qui diable dit ça? arrête de les écouter! Vous ne pouvez pas vous abonner à un événement sans connaître le parent -> couplage étroit. Examinez les événements faibles (= médiateur?).
Louis Kottmann
@Baboon Je suis généralement d'accord pour dire que les événements ne produisent pas automatiquement de couplage lâche, mais si vous introduisez un bus d'événements, vous pouvez vous abonner aux événements sans connaître le "parent". Qui le dit? Ray Ryan sur Google IO 2009, voir google.com/events/io/2009/sessions/… à 13h50.
scarfridge
@scarfridge oui, si vous implémentez une sorte d'agrégateur d'événements, c'est perdre le couplage, comme je l'ai dit dans mon commentaire.
Louis Kottmann
.net rx Est un agrégateur d'événements, je suis sur mobile, publierai plus de détails plus tard
AndreasScheinert

Réponses:

1

Les monades et les événements se jouent assez bien ensemble, par exemple, jetez un œil à .NET Rx. Je pense qu'il devrait même y avoir une implémentation JavaScript. http://msdn.microsoft.com/en-us/data/gg577609.aspx

AndreasScheinert
la source
désolé pour retard accepté. "Quelque chose de stupide de Microsoft" est en effet génial. Et maintenant, après que les extensions réactives ont été open source, elles sont encore plus viables. Merci pour la réponse (bien que vous souhaitiez peut-être la développer un peu;)).
c69
Cela dépend de ce que vous recherchez: une introduction ou des exemples spécifiques. En tout cas, je peux vous recommander d'explorer les vidéos de channel9 et les conférences d'Erik Meijer et Brian Beckmann sur le sujet.
AndreasScheinert