Faz sentido aplicar os princípios em Redux às linguagens OO?


9

Redux é essencialmente programação funcional, e faz muito sentido. À medida que volto para uma linguagem OOP sem javascript em um projeto diferente, gostaria de aplicar os mesmos princípios, como objeto de estado único, redutores que atuam em partes desse estado, uma camada comercial de ações semânticas para modificar o estado.

Meu projeto está em C ++ e quero saber se faz sentido tentar aplicar uma abordagem funcional e de estilo redux ao projetar o aplicativo. O desempenho não é super crítico para este aplicativo, mas a manutenção é.

Que dificuldades eu enfrentaria para criar meu aplicativo assim?


Devo acrescentar que este não é um aplicativo GUI. E pensando nisso mais, talvez o redux tenha reduzido os benefícios em um aplicativo que não seja da GUI, pois não há algum efeito visual direto da atualização do estado do aplicativo.


O cara que fez o redux diz que tem uma implementação ES6, que é essencialmente Javascript Orientado a Objeto.
Robert Harvey

11
Eu olhei para fazer isso em Java há um tempo atrás. Você pode fazer funcionar; Java 8 e C ++ 11 são pelo menos tão "funcionais" quanto Javascript. Mas o sistema de tipos estáticos pode tornar as coisas meio feias. De maneira alguma restrito a GUIs, a propósito; A abordagem do Redux é extremamente semelhante à maneira como Clojure gerencia o estado sob concorrência, o que não está vinculado às GUIs.
Torisuda

Respostas:


5

Os estilos funcionais de programação tendem a ser um pouco reutilizáveis ​​em qualquer lugar com a mentalidade certa. A idéia geral de aplicar paradigmas entre linguagens é o que Steve McConnell chama no Code Complete como "programação em uma linguagem". Eu queria enfatizar que o desejo de aplicar as lições aprendidas em vários idiomas e paradigmas é realmente a marca de alguém que vê o idioma como um meio de expressão. É incrível quantos desenvolvedores nunca chegam a esse ponto.

Como você aponta, a filosofia do Redux é direcionada ao desenvolvimento da interface do usuário. É difícil visualizar muitos cenários em que o rastreamento delta de estado é útil em ambientes que não são da interface do usuário. Depende realmente do seu problema, no entanto. Se a abordagem facilitar a compreensão e a manutenção da solução geral, provavelmente será uma boa. A abordagem geral adotada pelo Redux se parece muito com o diário de transações na maioria dos RDBMSes; portanto, pode ser verdade que a abordagem existia antes do JavaScript.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.