Est-il judicieux d'appliquer les principes de Redux aux langages OO?

9

Redux est essentiellement une programmation fonctionnelle, et cela a beaucoup de sens. Alors que je reviens à un langage OOP non javascript dans un autre projet, je voudrais appliquer les mêmes principes tels que l'objet à état unique, les réducteurs qui agissent sur des parties de cet état, une couche métier d'actions sémantiques pour modifier l'état.

Mon projet est en C ++ et je veux savoir s'il est logique d'essayer d'appliquer une approche fonctionnelle de style redux à la conception de l'application. Les performances ne sont pas super critiques pour cette application, mais la maintenabilité l'est.

À quelles difficultés serais-je confronté lors de la conception de mon application comme ceci?


Je dois ajouter que ce n'est pas une application graphique. Et en y réfléchissant davantage, peut-être que redux a réduit les avantages dans une application non GUI car il n'y a pas d'effet visuel direct de la mise à jour de l'état de l'application.

tt9
la source
Le gars qui a fait le redux dit qu'il a une implémentation ES6, qui est essentiellement du Javascript orienté objet.
Robert Harvey
1
J'ai cherché à faire cela en Java il y a quelque temps. Vous pouvez faire en sorte que ça marche; Java 8 et C ++ 11 sont au moins aussi "fonctionnels" que Javascript. Mais le système de type statique peut rendre les choses un peu laides. En aucun cas limité aux interfaces graphiques, soit dit en passant; L'approche de Redux est extrêmement similaire à la façon dont Clojure gère l'état sous simultanéité, qui n'est pas du tout liée aux interfaces graphiques.
Torisuda

Réponses:

5

Les styles de programmation fonctionnels ont tendance à être quelque peu réutilisables à peu près n'importe où avec la bonne mentalité. L'idée générale d'appliquer des paradigmes entre langages est ce que Steve McConnell appelle dans Code Complete «programmation dans un langage». Je voulais surtout souligner que le désir d'appliquer les leçons apprises cross-language et cross-paradigm est vraiment la marque de quelqu'un qui voit la langue comme un moyen d'expression. Il est étonnant de voir combien de développeurs n'atteignent jamais ce point.

Comme vous le faites remarquer, la philosophie de Redux vise le développement d'interface utilisateur. Il est difficile d'envisager un trop grand nombre de scénarios dans lesquels le suivi delta de l'état est utile dans des environnements non UI. Cela dépend vraiment de votre problème. Si l'approche rend la solution globale plus facile à comprendre et à maintenir, elle est probablement bonne. L'approche générale adoptée par Redux ressemble beaucoup au journal des transactions dans la plupart des SGBDR, il peut donc être vrai que l'approche existait avant JavaScript.

Michael
la source