¿Es la arquitectura de la aplicación de Facebook Flux una nueva idea?

7

Facebook anunció que está usando la arquitectura que llaman Flux para desarrollar sus proyectos.

Consiste en un flujo de datos de una sola dirección y conceptos como Dispatcher , Stores y Actions (bien descritos aquí ).

Esta es su ilustración de cómo se pegan las piezas:

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

Mi pregunta es: ¿Es una idea nueva? ¿Es una arquitectura de aplicación utilizada antes? ¿Es una "mejor práctica" tomada de otro idioma / marco?

El propósito de esta pregunta es profundizar el conocimiento sobre la arquitectura que ha estado recibiendo mucha atención últimamente, y parece muy diferente del patrón MV* con el que la mayoría de los desarrolladores con los que he estado trabajando.

    
pregunta Lucas Reis 11.11.2014 - 14:41

2 respuestas

4

Creo que es una abstracción de CQRS (Segregación de responsabilidad de consulta de comando) enlace

    
respondido por el chchrist 03.06.2015 - 12:54
3

No recuerdo haber visto las Vistas específicas - > Despachador - > Almacena la arquitectura antes, pero el concepto más general de "flujo" ha existido por algún tiempo, como mencionan en el artículo que has vinculado:

  

Esta estructura nos permite razonar fácilmente acerca de nuestra aplicación de una manera que recuerda la programación reactiva funcional, o más específicamente la programación de flujo de datos o la programación basada en flujo, donde los datos fluyen a través de la aplicación en una sola dirección. no hay enlaces de dos vías.

Hay una gran cantidad de información y algunas implementaciones existentes si busca esos términos. He hecho algo de programación reactiva funcional con elm . Las restricciones que te impone a veces son difíciles de manejar, pero esas restricciones también hacen que sea muy difícil entrar en un estado inconsistente o crear ciclos de actualización extraños.

    
respondido por el Karl Bielefeldt 11.11.2014 - 17:29