Enquanto aprendia sobre o Redux, o padrão de objeto de Deus (ou antipadrão) veio à minha mente - ambos tinham um único grande objeto contendo todos os dados e métodos do aplicativo para manipulá-los. Mas o Redux impôs algumas restrições, como tornar o objeto imutável e eventos puros, mantendo uma assinatura estrita.
Então surgiu a pergunta: o Redux está usando uma versão higienizada do objeto de Deus? Ou, há algo a ver com o Javascript não ser clássico OOP fortemente tipado?
DbContext
), mas seus dados internos são subdivididos em partes menores (tabelas, esquemas).Respostas:
O que é um objeto de Deus? Da Wikipedia:
O repositório Redux contém apenas um objeto de dados e requer apenas 2 ou 3 métodos. A esse respeito, é difícil imaginar pensar nisso como um objeto de Deus. Decididamente, não é "tudo que sabe".
Agora, se o seu redutor não estiver quebrado, se toda a lógica estiver em uma função, isso poderá ser qualificado, mas é uma questão simples dividir o redutor em vários pedaços menores para evitar a situação.
fonte
IMO, A questão acima não deve surgir. Os conceitos de programação funcional não são comparáveis aos do OOPS, são apenas maneiras diferentes de resolver o mesmo problema.
fonte
A primeira página deixa bem claro que o Redux resolve um problema específico dos aplicativos Web de página única:
Como os requisitos para aplicativos de página única JavaScript se tornam cada vez mais complicados, nosso código deve gerenciar mais estados do que nunca. (de Redux - Motivação)
Minha própria tradução é: os aplicativos da Web e as estruturas para a criação de aplicativos da Web são confusos e, quando estão sendo executados em um navegador, eles enfrentam um conjunto único de problemas que simplesmente não surgem fora dos aplicativos da Web.
Não me interpretem mal - não estou dizendo que os aplicativos da web são ruins ou que as estruturas são ruins. É que as páginas da Web e todo o paradigma sobre ele inegavelmente nunca foram projetados com os aplicativos em mente. Alguns aplicativos da Web funcionam notavelmente bem - eu amo o Google Docs, por exemplo, é melhor que os equivalentes de aplicativos nativos.
Mas o Redux é apenas uma ferramenta para gerenciar os problemas que surgem quando você precisa lidar com as limitações e os problemas decorrentes da criação de aplicativos da Web que são executados em um navegador.
Para um aplicativo iOS, ou um aplicativo nativo de qualquer tipo, não faz sentido. O modelo de objeto lida com alterações assíncronas e interação do usuário com facilidade. Você sempre saberá o que está acontecendo. A renderização de estados diferentes não é um problema e é automatizada com MVC e eventos de atualização.
Você nunca se depara com uma situação como os aplicativos da web.
** Se sua arquitetura é ruim, então nada pode salvá-lo, nem mesmo o Redux;)
fonte