¿Tiene sentido aplicar los principios en Redux a los lenguajes OO?

9

Redux es esencialmente una programación funcional, y tiene mucho sentido. A medida que vuelvo a un lenguaje OOP no javascript en un proyecto diferente, me gustaría aplicar los mismos principios, como un objeto de estado único, reductores que actúan en partes de ese estado, una capa empresarial de acciones semánticas para modificar el estado.

Mi proyecto está en C ++ y quiero saber si tiene sentido intentar aplicar un enfoque funcional de estilo redux para diseñar la aplicación. El rendimiento no es súper crítico para esta aplicación, pero sí la mantenibilidad.

¿Qué dificultades enfrentaría para diseñar mi aplicación de esta manera?


Debo agregar que esta no es una aplicación GUI. Y pensando en eso más, quizás redux haya reducido el beneficio en una aplicación sin GUI ya que no hay algún efecto visual directo de la actualización del estado de la aplicación.

tt9
fuente
El tipo que hizo lo de Redux dice que tiene una implementación de ES6, que es esencialmente Javascript orientado a objetos.
Robert Harvey
1
Busqué hacer esto en Java hace un tiempo. Puedes hacer que funcione; Java 8 y C ++ 11 son al menos tan "funcionales" como Javascript. Pero el sistema de tipo estático puede hacer que las cosas sean algo feas. De ninguna manera restringido a GUIs, por cierto; El enfoque de Redux es extremadamente similar a la forma en que Clojure administra el estado bajo concurrencia, que no está vinculado a las GUI en absoluto.
Torisuda

Respuestas:

5

Los estilos funcionales de programación tienden a ser algo reutilizables en casi cualquier lugar con la mentalidad correcta. La idea general de aplicar paradigmas de idiomas cruzados es a lo que Steve McConnell se refiere en Code Complete como "programación en un lenguaje". Principalmente quería señalar que el deseo de aplicar las lecciones aprendidas entre idiomas y paradigmas cruzados es realmente la marca de alguien que ve el lenguaje como un medio de expresión. Es sorprendente cuántos desarrolladores nunca llegan a este punto.

Como usted señala, la filosofía de Redux está dirigida al desarrollo de UI. Es difícil imaginar demasiados escenarios en los que el seguimiento delta del estado sea útil en entornos que no sean de UI. Sin embargo, realmente depende de tu problema. Si el enfoque hace que la solución general sea más fácil de entender y mantener, entonces probablemente sea una buena. El enfoque general que adopta Redux se parece mucho al diario de transacciones en la mayoría de los RDBMS, por lo que puede ser cierto que el enfoque existía antes de JavaScript.

Miguel
fuente