Futures / Monadi vs Eventi


10

In un framework applicativo in cui l'impatto delle prestazioni può essere ignorato (10-20 eventi al secondo al massimo),
cosa è più gestibile e flessibile da utilizzare come mezzo preferito per la comunicazione tra i moduli - Eventi o Futures / Promesse / Monadi ?

Si dice spesso che gli eventi (pub / sottotitoli, mediatore) consentano un accoppiamento libero e quindi - un'app più gestibile ... La mia esperienza nega questo: una volta che hai più di 20 eventi - il debug diventa difficile, e anche il refactoring - perché è molto difficile da vedere: chi, quando e perché usa cosa.

Le promesse (sto codificando in Javascript) sono molto più brutte e più stupide degli Eventi. Ma: puoi vedere chiaramente le connessioni tra le chiamate di funzione, quindi la logica dell'applicazione diventa più semplice. Ciò di cui ho paura. tuttavia, è che le promesse porteranno più accoppiamento duro con loro ...

ps: la risposta non deve essere basata su JS, l'esperienza di altri linguaggi funzionali è molto gradita.


2
Si dice spesso che gli eventi (pub / sottotitoli, mediatori) consentano un accoppiamento libero chi diavolo lo dice? smetti di ascoltarli! Non è possibile iscriversi a un evento senza conoscere il genitore -> accoppiamento stretto. Guarda in eventi deboli (= mediatore?).
Louis Kottmann,

@Baboon In genere sono d'accordo sul fatto che gli eventi non producono automaticamente accoppiamenti liberi, ma se si introduce un bus eventi è possibile iscriversi agli eventi senza conoscere il "genitore". Chi lo dice? Ray Ryan su Google IO 2009, vedi google.com/events/io/2009/sessions/… alle 13:50.
scarfridge,

@scarfridge sì, se si implementa una sorta di eventaggregator, si perde l'accoppiamento, come ho detto nel mio commento.
Louis Kottmann,

.net rx È un aggregatore di eventi, sono sul cellulare, pubblicherò più dettagli in seguito
AndreasScheinert,

Risposte:


1

Monadi ed eventi si svolgono abbastanza bene insieme, ad esempio dare un'occhiata a .NET Rx. Penso che ci dovrebbe essere anche un'implementazione JavaScript. http://msdn.microsoft.com/en-us/data/gg577609.aspx


scusa per l'accettazione ritardata. "alcune cose stupide di Microsoft" è davvero fantastico. E ora, dopo che le estensioni reattive sono state di provenienza aperta, sono ancora più vitali. Grazie per la risposta (anche se potresti volerlo espandere un po ';)).
c69,

Dipende da cosa stai cercando: alcune introduzioni o esempi specifici. In ogni caso, posso consigliarti di esplorare i video di Channel9 e i discorsi di Erik Meijer e Brian Beckmann sull'argomento.
AndreasScheinert,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.