Redux usa un modello di oggetto di Dio sanificato?

13

Durante l'apprendimento di Redux, mi è venuto in mente il modello oggetto-Dio (o anti-pattern) - entrambi hanno un unico grande oggetto che contiene tutti i dati e i metodi delle app per manipolarli. Ma Redux ha messo alcuni vincoli come rendere l'oggetto immutabile e le funzioni di eventi pur mantenendo una firma rigorosa.

Quindi la domanda è arrivata, Redux sta usando una versione sterilizzata dell'oggetto God? Oppure, c'è qualcosa che ha a che fare con Javascript non essendo un OOP strongmente tipizzato?

    
posta Gulshan 29.11.2016 - 13:57
fonte

3 risposte

5

Che cos'è un oggetto di Dio? Da Wikipedia:

Most of [a God object containing] program's overall functionality is coded into a single "all-knowing" object, which maintains most of the information about the entire program, and also provides most of the methods for manipulating this data. Because this object holds so much data and requires so many methods, its role in the program becomes God-like (all-knowing and all-encompassing).

Il negozio Redux contiene solo un oggetto dati e richiede solo 2 o 3 metodi. A questo riguardo è difficile immaginare di pensarlo come un oggetto di Dio. È decisamente non "a conoscenza."

Ora se il tuo riduttore non è affatto rotto, se tutta la logica è in una funzione, allora che potrebbe qualificarsi, ma è semplice separare il riduttore in un gruppo di piccoli pezzi per evitare la situazione.

    
risposta data 22.12.2017 - 01:28
fonte
2

IMO, la domanda precedente non dovrebbe sorgere. I concetti di programmazione funzionale non sono paragonabili ai concetti in OOPS, sono solo diversi modi per risolvere lo stesso problema.

    
risposta data 21.12.2017 - 01:23
fonte
0

La prima pagina chiarisce che Redux risolve un problema specifico per le applicazioni web a singola pagina:

Poiché i requisiti per le applicazioni a pagina singola JavaScript sono diventati sempre più complicati, il nostro codice deve gestire più stato che mai. (da Redux - Motivazione)

La mia traduzione è - le app web e i framework per la creazione di applicazioni web sono disordinati e mentre sono in esecuzione in un browser si trovano di fronte a un insieme unico di problemi che non sorgono al di fuori delle app web.

Non fraintendermi - non sto dicendo che le web app siano cattive o che i framework siano cattivi. Sono solo le pagine Web e l'intero paradigma a riguardo non è mai stato progettato per le applicazioni. Alcune app Web funzionano molto bene: ad esempio, ad esempio Google Documenti, è migliore degli equivalenti delle app native.

Ma Redux è solo uno strumento per gestire i problemi che sorgono quando devi affrontare le limitazioni e i problemi derivanti dalla creazione di app web eseguite in un browser.

Per un'app iOS o un'app nativa di qualsiasi tipo, non ha senso. Il modello a oggetti gestisce le modifiche asincrone e l'interazione dell'utente con facilità. Saprai sempre cosa sta succedendo. Il rendering di stati diversi non è un problema ed è automatizzato con MVC e gli eventi di aggiornamento.

Non ti trovi mai di fronte a una situazione come le app web.

** Se la tua architettura è pessima, allora, niente può salvarti, nemmeno Redux;)

    
risposta data 06.09.2018 - 11:32
fonte

Leggi altre domande sui tag