Programa do Curso

Dia 1 — Fundamentos Robustos de Python e Ferramentas

Recursos Modernos do Python e Tipagem

  • Noções básicas de tipagem, genéricos, Protocolos e TypeGuard
  • Dataclasses, dataclasses congeladas e visão geral do attrs
  • Correspondência de padrões (PEP 634+) e uso idiomático

Qualidade do Código e Ferramentas

  • Formatadores de código e linters: black, isort, flake8, ruff
  • Verificação estática de tipos com MyPy e pyright
  • Hooks pre-commit e fluxos de trabalho do desenvolvedor

Gestão de Projeto e Embalagem

  • Gerenciamento de dependências com Poetry e ambientes virtuais
  • Layout de pacotes, pontos de entrada e práticas recomendadas para versionamento
  • Criação e publicação de pacotes no PyPI e em registros privados

Dia 2 — Padrões de Design e Práticas Arquiteturais

Padrões de Design em Python

  • Padrões criacionais: Factory, Builder, Singleton (variantes Pythonicas)
  • Padrões estruturais: Adapter, Facade, Decorator, Proxy
  • Padrões comportamentais: Strategy, Observer, Command

Princípios Arquiteturais

  • Princípios SOLID aplicados a bases de código Python
  • Arquitetura Hexagonal/Clean e limites
  • Padrões de injeção de dependência e gerenciamento de configuração

Modularidade e Reutilização

  • Projeto de código de biblioteca vs aplicação
  • APIs, interfaces estáveis e versionamento semântico
  • Tratamento de configuração, segredos e definições específicas do ambiente

Dia 3 — Concorrência, Async IO e Desempenho

Concorrência e Paralelismo

  • Fundamentos de threading e implicações do GIL
  • Multiprocessing e pools de processos para tarefas CPU-bound
  • Quando usar concurrent.futures vs multiprocessing

Programação Assíncrona com asyncio

  • Padrões async/await, loop de eventos e cancelamento
  • Design de bibliotecas assíncronas e interoperabilidade com código síncrono
  • Padrões IO-bound, backpressure e rate limiting

Análise de Desempenho e Otimização

  • Ferramentas de análise: cProfile, pyinstrument, perf, memory_profiler
  • Otimizando hot paths e usando C-extensions/Numba quando apropriado
  • Medindo latência, throughput e utilização de recursos

Dia 4 — Testes, CI/CD, Observabilidade e Implantação

Estratégias de Teste e Automação

  • Testes unitários e fixtures com pytest; organização dos testes
  • Testes baseados em propriedades com Hypothesis e testes de contrato
  • Fingimento, monkeypatching e teste de código assíncrono

CI/CD, Liberação e Monitoramento

  • Integração de testes e portões de qualidade no GitHub Actions/GitLab CI
  • Criação de contêineres reproduzíveis com Docker e builds multietapa
  • Observabilidade da aplicação: logging estruturado, métricas Prometheus e rastreamento

Segurança, Fortificação e Melhores Práticas

  • Auditoria de dependências, fundamentos do SBOM e varredura de vulnerabilidades
  • Práticas de codificação seguras para validação de entrada e gerenciamento de segredos
  • Fortificação em tempo de execução: limites de recursos, direitos de usuário e segurança de contêineres

Projeto Final e Revisão

  • Laboratório em equipe: design e implementação de um pequeno serviço usando padrões do curso
  • Teste, verificação de tipos, embalagem e pipeline CI para o projeto
  • Revisão final, análise crítica do código e plano de ação para melhorias

Resumo e Próximos Passos

Requisitos

  • Sólida experiência de programação em Python de nível intermediário
  • Familiaridade com programação orientada a objetos e testes básicos
  • Experiência no uso da linha de comando e Git

Público-Alvo

  • Desenvolvedores Python sênior
  • Engenheiros de software responsáveis pela qualidade e arquitetura do código Python
  • Líderes técnicos e engenheiros MLOps/DevOps que trabalham com bases de código Python
 28 Horas

Declaração de Clientes (5)

Próximas Formações Provisórias

Categorias Relacionadas