Por que odio Redux

El tema, por supuesto, no es nuevo, y ya se ha dicho y escrito mucho sobre este tema. Pero aún así compartiré mi opinión sobre este asunto, tk. mi conciencia de este hecho se formó de manera bastante independiente y sobre la base de mi propia experiencia, valores y puntos de vista, y tal vez (espero) en él el lector encontrará algo nuevo o útil para sí mismo.





Flux no es nada nuevo ni revolucionario en absoluto.

No es que no me guste por eso. Más bien, ni siquiera tiene nada de malo: si la solución es buena y probada con el tiempo, ¿es realmente mala? Más bien, me sorprende escuchar cómo algunos intentan que el enfoque implementado en Flux en general (y en Redux en particular) se haga pasar por algo innovador y revolucionario. Y la solución en sí misma, en mi opinión, al menos no está exenta de inconvenientes. Pero más sobre eso más adelante, pero por ahora recordaré mi juventud.





A principios de la década de 2000, desarrollé software y bibliotecas de componentes en Delphi para Windows (primero Win9x, luego XP). En los sistemas operativos Windows, desde el principio, si no me equivoco, las versiones, para los elementos de la interfaz visual (botones, campos de entrada) hay un concepto de ventana; sí, una ventana no es solo algo con un marco, cualquier control visual tenía su propia ventana. En este caso, una ventana es una estructura en la memoria que tiene un identificador asociado (identificador de ventana) y una función de ventana (ver más abajo). Si queremos realizar alguna acción sobre un elemento, por ejemplo, para cambiar el texto de un botón, debemos empaquetar esta acción en una estructura de mensaje especial (mensaje de ventana) y enviarlo a la ventana correspondiente. La estructura consta de un tipo de mensaje codificado (por ejemplo, WM_SETTEXT - para establecer el texto) y la carga útil en sí.Una vez enviado, el mensaje no va directamente al manejador, sino que va a la cola, de la cual algún despachador lo recupera y llama a la función de ventana de la ventana a la que enviamos el mensaje, pasándolo como parámetro. Una función de ventana en su caso más simple es un conmutador grande, donde, dependiendo del tipo de mensaje, transferimos el control a un manejador más específico. ¿No se parece a nada?





. WinAPI . , Redux, .





"Low coupling, high cohesion"

, , - , / . . - . "Low coupling, high cohesion" " ", , , SOLID- Design Pattern " ".





Redux - , , - Low cohesion High. , , . Low Coupling , . Java-, - (Bean) - , , - , , , , - .





Boilerplate

, Redux . , , . , , , , . , , , , - .





, Redux , - , Angular (angular-redux, NgRx). Redux State, React.js , . Angular , Injectable- . , ( )?





, Redux , .





En conclusión, cabe señalar algo bueno. Digamos que no es tan malo cuando tienes un gran equipo de desarrolladores de diferentes niveles, y todos escriben código que todos entienden aproximadamente en el mismo estilo sin inventar nada. Si, de lo contrario, un equipo tan heterogéneo no podrá trabajar de manera efectiva, entonces el juego definitivamente vale la pena. Pero, de hecho, me gustaría tener una solución simple y efectiva, sin las desventajas anteriores. API de contexto? Tal vez.








All Articles