[ Base de Dados Estelar ]
Conceitos
Cada conceito é uma entrada independente da base de dados — com resumo, problema que resolve, exemplos comparativos e quando (não) aplicar.
Separação de Responsabilidades
Entenda como dividir o sistema em partes com funções claras para reduzir acoplamento, melhorar testabilidade e tornar a manutenção sustentável.
Acoplamento
Acoplamento mede o quanto dois módulos dependem um do outro. Quanto mais alto, mais difícil mudar um sem quebrar o outro.
Colocalização de Estado
Estado que mora longe de onde é usado cria dependências invisíveis e re-renders desnecessários. Aprenda a decidir onde cada pedaço de estado pertence.
Componentes vs Containers
Separar componentes que renderizam dos que buscam dados e tomam decisões é o primeiro passo para um frontend testável, reutilizável e fácil de entender.
Camadas no Frontend
Services, hooks e componentes formam camadas com responsabilidades distintas. Entender onde cada coisa mora evita que lógica de negócio se espalhe por toda a aplicação.
Repository Pattern
Isole o acesso a dados atrás de uma interface clara. O Repository evita que lógica de banco vaze para o domínio da aplicação.
Service Layer
Centralize a lógica de negócio em serviços dedicados. A Service Layer evita que regras espalhadas por controllers e repositories tornem o sistema difícil de manter.
Injeção de Dependência
Forneça dependências de fora para dentro. A Injeção de Dependência elimina o acoplamento entre quem usa e quem implementa, tornando o código testável e substituível.
Code Smells
Aprenda a reconhecer os sinais de que o código precisa ser refatorado. Code smells não são bugs — são indícios de que uma decisão de design pode estar custando caro.
Extrair Método
Transforme blocos de código em funções com nome. Extrair método é a refatoração mais frequente — e a mais eficaz para reduzir complexidade e melhorar legibilidade.
Refatoração Segura
Mude a estrutura do código sem alterar seu comportamento. Refatoração segura depende de testes como rede de proteção e de passos pequenos que podem ser revertidos.
Strategy
Substitua condicionais que crescem com o negócio por comportamentos intercambiáveis. O Strategy isola o que varia e deixa o restante do código estável.
Observer
Deixe partes do sistema reagirem a eventos sem que o emissor saiba quem está ouvindo. A base de todo sistema de eventos, notificações e reatividade.
Factory
Centralize a criação de objetos complexos num único lugar. Quando a lógica de instanciação cresce, Factory evita que ela vaze pelo sistema inteiro.
Adapter
Conecte interfaces incompatíveis sem reescrever nenhuma das duas partes. O padrão essencial para integrar APIs externas e bibliotecas de terceiros.