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.
Respostas:
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.
fonte