✨ Cap 05: Clean Code, Refatoração e os 5 Princípios SOLID em Engenharia de Software
🗺️ 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