L'architettura dell'applicazione di Facebook Flux è una nuova idea?

7

Facebook ha annunciato che sta utilizzando l'architettura che chiamano Flux per sviluppare i loro progetti.

Consiste in un flusso di dati a direzione singola e concetti come Dispatcher , Stores e Actions (ben descritto qui ).

Questa è la loro illustrazione di come i pezzi si incollano insieme:

Views ---> (actions) ----> Dispatcher ---> (registered callback) ---> Stores -------+
Ʌ                                                                                   |
|                                                                                   V
+-- (Controller-Views "change" event handlers) ---- (Stores emit "change" events) --+

La mia domanda è: È una nuova idea? È già utilizzata un'architettura applicativa? È una "best practice" presa in prestito da un'altra lingua / framework?

Lo scopo di questa domanda è approfondire la conoscenza dell'architecure che ha attirato molta attenzione ultimamente, e sembra molto diverso dal modello MV* con cui molti sviluppatori con cui ho lavorato hanno lavorato.

    
posta Lucas Reis 11.11.2014 - 14:41
fonte

2 risposte

4

Credo che sia un'astrazione di CQRS (Comando di segregazione delle responsabilità segregazione) link

    
risposta data 03.06.2015 - 12:54
fonte
3

Non ricordo di aver visto le Views specifiche - > Dispatcher - > Memorizza l'architettura in passato, ma il concetto più generale di "flusso" è stato intorno un po ', come menzionano nell'articolo che hai collegato:

This structure allows us to reason easily about our application in a way that is reminiscent of functional reactive programming, or more specifically data-flow programming or flow-based programming, where data flows through the application in a single direction — there are no two-way bindings.

Ci sono un sacco di informazioni e alcune implementazioni esistenti là fuori se cerchi quei termini. Ho eseguito alcune programmazioni reattive funzionali con elm . Le restrizioni che ti costringono a volte sono difficili da lavorare all'interno, ma anche quelle restrizioni rendono molto difficile entrare in uno stato incoerente o creare strani cicli di aggiornamento.

    
risposta data 11.11.2014 - 17:29
fonte