Usiamo JS a proposito, ma penso che sia un linguaggio agnostico. Sono aperto alle idee.
Abbiamo questa struttura "pub-sub" che usiamo al lavoro per risolvere il problema del codice strettamente accoppiato. Funziona bene. I moduli ascoltano gli eventi, le cose corrono, trasmettono eventi, altre cose corrono. È fantastico. Tuttavia ...
Ad esempio, volevo cliccare su un link per aprire una modal, modificare i dati passati e inviarlo al chiamato. L'invio al modale sarebbe semplice come trasmettere un evento con i dati. Modale, sottoscritto all'evento, risponde e altera i dati. Il problema è riportare i dati al chiamante.
Scenari:
-
Il modulo trasmette un evento e allo stesso tempo ascolta un evento nella speranza di una risposta (evento di un altro modulo). Come potrei sapere che la risposta era in effetti dell'evento che è stato trasmesso poco prima di esso?
-
Un altro è che ho in programma di inviare una funzione di callback con i dati inviati attraverso l'evento. In questo modo, i ricevitori possono semplicemente chiamare il callback con i dati dalla loro parte. Tuttavia, il modulo riceverebbe una quantità sconosciuta di chiamate di richiamata, a seconda del numero di abbonati.
Lo scenario è più di messaggistica diretta, che è in qualche modo in contraddizione con la natura incendia e dimentica di una trasmissione. Ci sono dei modelli che mantengono ancora l'accoppiamento, la modularità e il tipo di architettura "sconosciuto all'altro"?