Aprender os três pilares fundamentais para garantir a qualidade e confiabilidade de sistemas em produção:
- Git: Governança e rastreabilidade
- Debug/Logs: Diagnóstico e observabilidade
- Testes: Validação e garantia
- Python 3.8+
- Git
- VS Code (recomendado)
- Conta no GitHub
- Aula 3 (FastAPI e Pydantic)
- Python básico
git clone https://github.com/seu-usuario/aula4-controle-qualidade.git
cd aula4-controle-qualidadepip install -r requirements.txtpython --version
git --version
pytest --versionaula4-controle-qualidade/
│
├── README.md # Este arquivo
├── requirements.txt # Dependências do projeto
├── .gitignore # Arquivos ignorados pelo Git
│
├── bloco2-git/ # 🔷 Git - Governança
│ ├── README.md
│ ├── exemplo-inicial/ # API com histórico Git
│ ├── exemplo-rollback/ # Demonstração de rollback
│ └── scripts/ # Scripts de setup
│
├── bloco3-debug-logs/ # 🔍 Debug e Logs
│ ├── README.md
│ ├── 1-sem-logs/ # API sem logs
│ ├── 2-com-logs/ # API com logs estruturados
│ ├── 3-exemplo-bug/ # Exemplo de debugging
│ └── como-debugar.md
│
├── bloco4-testes/ # ✅ Testes Automatizados
│ ├── README.md
│ ├── 1-sem-testes/ # API sem testes
│ ├── 2-com-testes/ # API com testes
│ ├── 3-exemplo-regressao/ # Detectando regressões
│ └── como-rodar-testes.md
│
├── bloco5-projeto/ # 🎓 Projeto Avaliativo
│ ├── README.md
│ ├── template/ # Template inicial
│ └── exemplos/ # Exemplos completos
│
└── utils/ # 🛠️ Utilitários
├── setup_ambiente.md
└── troubleshooting.md
- O custo do risco em produção
- Conceito "Shift Left"
- Os três pilares de controle
- Conceitos: Git vs GitHub, recuperação de desastre
- Comandos:
git log,git revert,git blame - Demonstração: Rollback em produção
- Governança: Pull Requests
📁 Material: bloco2-git/
- Fase 1: Debugger interativo (desenvolvimento)
- Fase 2: Logs estruturados (produção)
- Demonstração: Encontrar e corrigir bugs
- JSON Logs: Logs indexáveis e alertas automáticos
📁 Material: bloco3-debug-logs/
- Conceitos: Regressão e "campo de força"
- Estrutura: Padrão AAA (Arrange, Act, Assert)
- Pytest: Testes automatizados
- Demonstração: Detectar regressão em produção
📁 Material: bloco4-testes/
- Especificação do projeto final
- Template inicial fornecido
- Exemplos de referência
- Critérios de avaliação
📁 Material: bloco5-projeto/
| Bloco | Tempo | Tipo |
|---|---|---|
| Setup Pré-Aula | 5min | Preparação |
| Bloco 1 - Introdução | 15min | Conceitual |
| Bloco 2 - Git | 45min | Demo + Conceitos |
| Break | 15min | - |
| Bloco 3 - Debug/Logs | 40min | Demo + Prática |
| Break | 15min | - |
| Bloco 4 - Testes | 50min | Demo + Prática |
| Break | 15min | - |
| Bloco 5 - Projeto | 35min | Especificação |
| TOTAL | 4h30 | - |
Construir uma API de lógica de negócio aplicando todos os pilares da aula.
- ✅ Repositório GitHub público
- ✅ README.md completo
- ✅ API FastAPI funcionando
- ✅ Validação com Pydantic
- ✅ Testes com Pytest (mínimo 2 testes)
- ✅ Histórico Git claro
22/11/2025 às 23h59
📁 bloco5-projeto/ - Template e exemplos
cd bloco3-debug-logs/2-com-logs
uvicorn main:app --reloadcd bloco4-testes/2-com-testes
pytest -vcd bloco2-git/exemplo-inicial
git log --onelineutils/setup_ambiente.md- Configuração do ambienteutils/troubleshooting.md- Solução de problemas comunsbloco3-debug-logs/como-debugar.md- Guia de debuggingbloco4-testes/como-rodar-testes.md- Guia de testes
Consulte utils/troubleshooting.md
- Levante a mão virtualmente
- Use o chat para perguntas
- Peça ajuda ao instrutor
- Abra uma Issue no GitHub
- Envie email para o instrutor
- Consulte a documentação oficial
Sistema de controle de versão que mantém histórico completo do código, permitindo rastreabilidade e recuperação de desastres.
Logs em formato JSON que podem ser indexados, pesquisados e usados para alertas automáticos em produção.
Robôs que validam se o código funciona corretamente, criando um "campo de força" que impede regressões.
Quando uma nova feature quebra uma funcionalidade antiga que estava funcionando.
Detectar e corrigir erros o mais cedo possível no ciclo de desenvolvimento, reduzindo custos exponencialmente.
Ao final desta aula, você será capaz de:
- ✅ Usar Git para rastreabilidade e rollback
- ✅ Criar logs estruturados para observabilidade
- ✅ Escrever testes automatizados com Pytest
- ✅ Detectar e prevenir regressões
- ✅ Aplicar governança de código via Pull Requests
- ✅ Construir APIs com qualidade de produção
"Protótipos funcionam. Sistemas confiáveis duram."
A combinação de Git, Debug/Logs e Testes é o que separa um código de estudante de um sistema profissional em produção.
Este material é fornecido para fins educacionais.
Boa aula! 🚀