Aula 14 - Arquitetura e Boas Práticas 🏗️
Criando Sistemas Escaláveis e Fáceis de Manter
Agenda de Hoje 📅
- O Caos vs Organização
- Clean Architecture em Go
- Injeção de Dependência
- Estrutura de Pastas (Padrão)
- Visibilidade e o pacote
internal - Mini-Projeto: Refatorando para DI
1. Clean Architecture 🧊
- Mantra: Independência de Framework e Banco.
- O código de negócio deve ser puro Go.
graph TD
UI[Handlers] --> UC[UseCases]
UC --> EN[Entities]
UC --> DB[Repositories]
2. Injeção de Dependência (DI) 💉
- Não deixe a struct criar seu próprio Repository.
- Dê o repositório para ela (via construtor).
3. O Pacote internal ⚔️
- Protege o seu código de "vazar".
- Apenas pacotes dentro do módulo podem importá-lo.
- Ideal para: Lógica de banco e regras internas.
4. Estrutura de Pastas Profissional 📂
$ tree
.
├── cmd/ # Entrypoints
├── internal/ # Core (Business)
├── pkg/ # Shared Libs
└── api/ # Docs/OpenAPI
5. Boas Práticas (Cringe Free) ✨
- Pacotes com nomes curtos:
user,auth. - Sem
utilsouhelpersgenéricos. - Retornos concretos, entradas abstratas.
6. Mini-Projeto: Refatorando 🚀
- Isolar a struct
Livroem entitites. - Criar interface
LivroRepository. - Fazer o Handler receber a interface.
Resumo da Aula ✅
- Clean Arch foca no que Realmente Importa (Negócio).
- Injeção de Dependência facilita Testes Unitários.
- Estrutura de pastas reflete a maturidade do time.
Próxima Aula: Docker e Deploy 🐳
- Indo para o mundo real.
- Containers e Infra.
Dúvidas? 🤔
"A arquitetura é o que permite que você mude de ideia depois."