Aula 15 - Clean Code e Arquitetura 📐
Código para Humanos 👥
- "Qualquer tolo consegue escrever código que um computador entenda. Bons programadores escrevem código que humanos entendam."
O que é Clean Code? ✨
- Um código que se lê como uma prosa bem escrita.
Princípios SOLID 💎
Cinco pilares da arquitetura orientada a objetos: - Single Responsibility - Open/Closed - Liskov Substitution - Interface Segregation - Dependency Inversion
S: Responsabilidade Única 🎯
- Uma classe/função deve ter apenas UM motivo para mudar.
O: Aberto para Extensão, Fechado para Mudança 🔓
- Adicione novas funcionalidades sem quebrar o que já existe.
I: Segregação de Interfaces 🧩
- Interfaces pequenas e específicas são melhores que interfaces "gordas".
D: Inversão de Dependência 💉
- Dependa de abstrações, não de implementações.
DRY: Don't Repeat Yourself 🔁
- Evite duplicar lógica em vários lugares.
KISS: Keep It Simple, Stupid! 🧠
- Não complique o que pode ser simples.
YAGNI: You Ain't Gonna Need It 🚫
- Não adicione funcionalidades "para o futuro" que você ainda não precisa.
Nomes Significativos ✍️
- Variáveis e funções devem dizer o que fazem sem precisar de comentários.
Funções Pequenas 🤏
- Máximo de 20 linhas.
- Se a função está grande, ela provavelmente faz coisas demais.
Comentários: O Mal Necessário ⚠️
- Se você precisa comentar o que o código faz, o código não está limpo o suficiente. Comente o "porquê" de decisões complexas.
Arquitetura em Camadas 🏢
graph TD;
UI[Interface / API] --> Application[Camada de Aplicação];
Application --> Domain[Camada de Domínio];
Domain --> Infra[Infraestrutura / BD];
DDD: Domain-Driven Design 🗺️
- O coração do software é o Domínio (regras de negócio).
Entidades e Value Objects 💎
- Entidades: Têm ID (Ex: Usuário).
- Value Objects: Definidos pelos seus atributos (Ex: Endereço).
Refatoração Contínua 🧹
- Aplique a "Regra do Escoteiro": Deixe o código sempre um pouco melhor do que o encontrou.
Dívida Técnica 💸
- Código "sujo" hoje é juros que você pagará amanhã em forma de bugs e lentidão.
Resumo 🏁
- Princípios SOLID
- Regras de Clean Code (Nomes, Tamanho)
- Arquitetura em Camadas