Futuros / Mónadas vs Eventos

10

En un marco de aplicación cuando se puede ignorar el impacto en el rendimiento (10-20 eventos por segundo como máximo),
¿qué es más fácil de mantener y utilizar como medio preferido para la comunicación entre módulos: eventos o futuros / promesas / mónadas ?

A menudo se dice que los eventos (pub / sub, mediador) permiten un acoplamiento flexible y, por lo tanto, una aplicación más fácil de mantener ... Mi experiencia lo niega: una vez que tiene más de 20 eventos, la depuración se vuelve difícil, y también lo es la refactorización. porque es muy difícil de ver: quién, cuándo y por qué usa qué.

Las promesas (estoy codificando en Javascript) son mucho más feas y tontas que los eventos. Pero: puede ver claramente las conexiones entre las llamadas a funciones, por lo que la lógica de la aplicación se vuelve más directa. De lo que tengo miedo. sin embargo, es que Promesas traerá más acoplamiento duro con ellos ...

ps: la respuesta no tiene que estar basada en JS, la experiencia de otros lenguajes funcionales es muy bienvenida.

c69
fuente
2
A menudo se dice que los Eventos (pub / sub, mediador) permiten un acoplamiento suelto, ¿ quién diablos dice eso? deja de escucharlos! No puede suscribirse a un evento sin conocer el padre -> acoplamiento estrecho. Busque eventos débiles (= ¿Mediador?).
Louis Kottmann
@Baboon Generalmente estoy de acuerdo en que los eventos no producen automáticamente un acoplamiento suelto, pero si introduce un bus de eventos puede suscribirse a los eventos sin conocer al "padre". Quien lo dice Ray Ryan en Google IO 2009, visite google.com/events/io/2009/sessions/… a las 13:50.
scarfridge
@scarfridge sí, si implementas algún tipo de regulador de evento, es perder el acoplamiento, como dije en mi comentario.
Louis Kottmann
.net rx es un agregador de eventos, estoy en el móvil, publicaré más detalles más tarde
AndreasScheinert

Respuestas:

1

Las mónadas y los eventos juegan bastante bien juntos, por ejemplo, eche un vistazo a .NET Rx. Creo que debería haber incluso una implementación de JavaScript. http://msdn.microsoft.com/en-us/data/gg577609.aspx

AndreasScheinert
fuente
lo siento por retrasar aceptar. "Algo tonto de Microsoft" es realmente impresionante. Y ahora, después de que las Extensiones Reactivas hayan sido de código abierto, son aún más viables. Gracias por la respuesta (aunque es posible que desee expandirlo un poco;)).
c69
Depende de lo que esté buscando: alguna introducción o ejemplos específicos. En cualquier caso, puedo recomendarle que explore los videos y las charlas de channel9 de Erik Meijer y Brian Beckmann sobre el tema.
AndreasScheinert el