Als ich über Redux lernte, kam mir das Gott-Objekt-Muster (oder Anti-Muster) in den Sinn - beide haben ein einziges großes Objekt, das alle App-Daten und Methoden zu ihrer Manipulation enthält. Redux hat jedoch einige Einschränkungen festgelegt, z. B., dass das Objekt unveränderlich ist und Ereignisse reine Funktionen sind, die eine strenge Signatur beibehalten.
Es stellte sich also die Frage, ob Redux eine bereinigte Version eines Gottesobjekts verwendet. Oder gibt es etwas damit zu tun, dass Javascript kein klassisches, stark typisiertes OOP ist?
DbContext
), die internen Daten sind jedoch in kleinere Teile (Tabellen, Schemata) unterteilt.Antworten:
Was ist ein Gottgegenstand? Aus Wikipedia:
Der Redux-Speicher enthält nur ein Datenobjekt und erfordert nur zwei oder drei Methoden. Insofern ist es schwer vorstellbar, dass es sich um ein Gott-Objekt handelt. Es ist definitiv nicht alles Wissen.
Nun, wenn Ihr Reduzierer überhaupt nicht aufgebrochen ist, wenn sich die gesamte Logik auf eine Funktion bezieht , ist dies möglicherweise qualifiziert, aber es ist eine einfache Sache, den Reduzierer in ein Bündel kleinerer Teile aufzuteilen, um die Situation zu vermeiden.
quelle
IMO, die obige Frage sollte sich nicht stellen. Funktionale Programmierkonzepte sind nicht mit Konzepten in OOPS vergleichbar, sondern lediglich verschiedene Methoden zur Lösung desselben Problems.
quelle
Auf der ersten Seite wird deutlich, dass Redux ein Problem löst, das nur für Web-Apps mit einer Seite gilt:
Da die Anforderungen an einseitige JavaScript-Anwendungen immer komplizierter werden, muss unser Code mehr Status verwalten als jemals zuvor. (aus Redux - Motivation)
Meine eigene Übersetzung lautet: Web-Apps und die Frameworks für die Erstellung von Web-Apps sind chaotisch. Da sie in einem Browser ausgeführt werden, sind sie mit einer Reihe von Problemen konfrontiert, die nur außerhalb von Web-Apps auftreten.
Versteht mich nicht falsch - ich sage nicht, dass Web-Apps schlecht sind oder dass die Frameworks schlecht sind. Es ist nur so, dass Webseiten und das gesamte Paradigma unbestreitbar nie mit Blick auf Anwendungen entworfen wurden. Einige Web-Apps funktionieren bemerkenswert gut - ich liebe Google Docs zum Beispiel, es ist besser als die nativen App-Entsprechungen.
Redux ist jedoch nur ein Tool, mit dem Sie die Probleme bewältigen können, die beim Erstellen von Webanwendungen auftreten, die in einem Browser ausgeführt werden.
Für eine iOS-App oder eine native App jeglicher Art ist dies nicht sinnvoll. Das Objektmodell verarbeitet problemlos asynchrone Änderungen und Benutzerinteraktionen. Sie werden immer wissen, was los ist. Das Rendern verschiedener Status ist kein Problem und wird mit MVC und Aktualisierungsereignissen automatisiert.
Sie werden nie mit einer Situation konfrontiert, wie es Web-Apps sind.
** Wenn deine Architektur schlecht ist, dann kann dich nichts retten, nicht einmal Redux;)
quelle