🗺️ Os 5 Princípios SOLID de Design Orientado a Objetos (Robert C. Martin)

flowchart TD
    SOLID["Princípios SOLID (Manutenibilidade, Desacoplamento e Testabilidade)"]

    SOLID --> S["S - Single Responsibility Principle (SRP)\nUma classe deve ter um, e apenas um, motivo para mudar"]
    SOLID --> O["O - Open/Closed Principle (OCP)\nEntidades de software abertas para extensão, fechadas para modificação"]
    SOLID --> L["L - Liskov Substitution Principle (LSP)\nSubclasses devem poder substituir suas classes-base sem quebrar a aplicação"]
    SOLID --> I["I - Interface Segregation Principle (ISP)\nInterfaces específicas e enxutas são melhores que interfaces genéricas infladas"]
    SOLID --> D["D - Dependency Inversion Principle (DIP)\nDependa de abstrações e interfaces, nunca de implementações concretas ⚡"]

    style SOLID fill:#ede7f6,stroke:#512da8,stroke-width:2px
    style S fill:#e1f5fe,stroke:#03a9f4,stroke-width:1.5px
    style O fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
    style L fill:#fff3e0,stroke:#ff9800,stroke-width:1.5px
    style I fill:#fff9c4,stroke:#fbc02d,stroke-width:1.5px
    style D fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff

📖 Fundamentos e Aplicação

Escrever código que o computador entende é fácil; escrever código limpo que outros humanos consigam manter e evoluir ao longo dos anos é a essência da Engenharia de Software Profissional.

1. Diretrizes de Clean Code (Código Limpo)

  • Nomes Reveladores de Intenção: Variáveis e funções devem dispensar comentários para explicar o que fazem.
  • Funções Pequenas e Focadas: Funções devem fazer apenas uma coisa, sem efeitos colaterais ocultos.
  • Tratamento Elegante de Erros: Utilizar exceções ou tipos de resultado (Result<T, E>) em vez de códigos de erro mágicos.

2. O Acrônimo SOLID na Prática

O SOLID resolve a rigidez (dificuldade de alterar código), a fragilidade (uma alteração quebra partes não relacionadas) e a imobilidade (impossibilidade de reutilizar módulos).


🧭 Navegação Rápida

| 📖 Teoria | 📊 Slides | 🧠 Quiz | 💻 Exemplos | 🧩 Exercícios | | :— | :— | :— | :— | :— | | Ler Tópico | Ver Slides | Fazer Quiz | Ver Código | Praticar |


🧭 Navegação do Capítulo: ⬅️ Capítulo Anterior · 📚 Sumário do Módulo · ➡️ Próximo Capítulo