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.
Antworten:
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.
quelle