Ist es sinnvoll, die Prinzipien in Redux auf OO-Sprachen anzuwenden?

9

Redux ist im Wesentlichen eine funktionale Programmierung und macht sehr viel Sinn. Wenn ich in einem anderen Projekt zu einer Nicht-Javascript-OOP-Sprache zurückkehre, möchte ich dieselben Prinzipien anwenden, z. B. ein einzelnes Zustandsobjekt, Reduzierungen, die auf Teile dieses Zustands wirken, eine Geschäftsschicht semantischer Aktionen zum Ändern des Zustands.

Mein Projekt ist in C ++ und ich möchte wissen, ob es sinnvoll ist, einen funktionalen Ansatz im Redux-Stil beim Entwerfen der Anwendung anzuwenden. Die Leistung ist für diese App nicht besonders wichtig, die Wartbarkeit jedoch.

Welche Schwierigkeiten hätte ich, meine App so zu gestalten?


Ich sollte hinzufügen, dass dies keine GUI-App ist. Wenn Sie mehr darüber nachdenken, hat Redux möglicherweise den Nutzen in einer Nicht-GUI-Anwendung verringert, da die Aktualisierung des Anwendungsstatus keinen direkten visuellen Effekt hat.

tt9
quelle
Der Typ, der die Redux-Sache gemacht hat, sagt, er habe eine ES6-Implementierung, die im Wesentlichen objektorientiertes Javascript ist.
Robert Harvey
1
Ich habe mir das vor einiger Zeit in Java angesehen. Sie können es zum Laufen bringen; Java 8 und C ++ 11 sind mindestens so "funktionsfähig" wie Javascript. Aber das statische Typsystem kann die Dinge irgendwie hässlich machen. Übrigens keineswegs auf GUIs beschränkt; Der Ansatz von Redux ist sehr ähnlich zu dem, wie Clojure den Status unter Parallelität verwaltet, was überhaupt nicht an GUIs gebunden ist.
Torisuda

Antworten:

5

Funktionale Programmierstile sind in der Regel fast überall mit der richtigen Einstellung wiederverwendbar. Die allgemeine Idee, sprachübergreifende Paradigmen anzuwenden, bezeichnet Steve McConnell in Code Complete als "Programmieren in eine Sprache". Ich wollte vor allem darauf hinweisen, dass der Wunsch, Lehren aus der Sprache und dem Paradigma zu ziehen, wirklich das Zeichen von jemandem ist, der die Sprache als Ausdrucksmedium sieht. Es ist erstaunlich, wie viele Entwickler diesen Punkt nie erreichen.

Wie Sie hervorheben, zielt die Philosophie von Redux auf die Entwicklung der Benutzeroberfläche ab. Es ist schwer, sich zu viele Szenarien vorzustellen, in denen die Delta-Verfolgung des Status in Umgebungen ohne Benutzeroberfläche nützlich ist. Es hängt jedoch wirklich von Ihrem Problem ab. Wenn der Ansatz das Verständnis und die Wartung der Gesamtlösung erleichtert, ist er wahrscheinlich gut. Der allgemeine Ansatz von Redux ähnelt stark dem Transaktionsjournal in den meisten RDBMS. Daher kann es durchaus zutreffen, dass der Ansatz vor JavaScript existierte.

Michael
quelle