Programa do Curso
Dia 1 — Fundamentos Robustos de Python & Ferramentas
Recursos Modernos do Python e Tipagem
- Básicos de tipagem, genéricos, Protocols e TypeGuard.
- Dataclasses, dataclasses congeladas (frozen) e visão geral do attrs.
- Correspondência de padrões (Pattern matching, PEP 634+) e uso idiomático.
Qualidade de Código e Ferramentas
- Formatadores e linters de código: black, isort, flake8, ruff.
- Verificação estática de tipos com MyPy e pyright.
- Pre-commit hooks e fluxos de trabalho do desenvolvedor.
Gerenciamento de Projetos e Empacotamento
- Gerenciamento de dependências com Poetry e ambientes virtuais.
- Estrutura de pacotes, entry points e melhores práticas de versionamento.
- Construção e publicação de pacotes no PyPI e registros privados.
Dia 2 — Padrões de Design & Práticas de Arquitetura
Padrões de Design em Python
- Padrões criacionais: Factory, Builder, Singleton (variantes Pythonic).
- Padrões estruturais: Adapter, Facade, Decorator, Proxy.
- Padrões comportamentais: Strategy, Observer, Command.
Princípios de Arquitetura
- Princípios SOLID aplicados a bases de código Python.
- Arquitetura Hexagonal/Hexagonal (Clean Architecture) e fronteiras.
- Padrões de injeção de dependências e gerenciamento de configuração.
Modularidade e Reuso
- Projeto de código de biblioteca vs. código de aplicação.
- APIs, interfaces estáveis e versionamento semântico.
- Gerenciamento de configuração, segredos e configurações específicas de ambiente.
Dia 3 — Concorrência, IO Assíncrona e Desempenho
Concorrência e Paralelismo
- Fundamentos de threads e as implicações do GIL (Global Interpreter Lock).
- Multiprocessing e pools de processos para tarefas limitadas por CPU.
- Quando usar concurrent.futures vs. multiprocessing.
Programação Assíncrona com asyncio
- Padrões Async/await, loop de eventos e cancelamento.
- Projeto de bibliotecas assíncronas e interoperabilidade com código síncrono.
- Padrões limitados por IO, backpressure e limitação de taxa (rate limiting).
Perfilamento e Otimização
- Ferramentas de perfilamento: cProfile, pyinstrument, perf, memory_profiler.
- Otimização de caminhos críticos (hot paths) e uso de extensões C/Numba quando apropriado.
- Mensuração de 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 de unidade e fixtures com pytest; organização de testes.
- Testes baseados em propriedades com Hypothesis e testes de contrato.
- Mocking, monkeypatching e testes de código assíncrono.
CI/CD, Lançamentos e Monitoramento
- Integração de testes e portões de qualidade no GitHub Actions/GitLab CI.
- Construção de containers reprodutíveis com Docker e builds em múltiplos estágios (multi-stage builds).
- Observabilidade de aplicações: log estruturado, métricas Prometheus e tracing.
Segurança, Fortalecimento e Melhores Práticas
- Auditoria de dependências, fundamentos de SBOM e varredura de vulnerabilidades.
- Práticas de codificação segura para validação de entrada e gerenciamento de segredos.
- Fortalecimento em tempo de execução: limites de recursos, permissões de usuário e segurança de containers.
Projeto Final (Capstone) & Revisão
- Lab em equipe: projeto e implementação de um pequeno serviço utilizando os padrões do curso.
- Testes, verificação de tipos, empacotamento e pipeline de CI para o projeto.
- Revisão final, crítica de código e plano de melhorias acionável.
Resumo e Próximos Passos
Requisitos
- Sólida experiência em programação 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 do Git.
Público Alvo
- Desenvolvedores Python Sênior.
- Engenheiros de Software responsáveis pela qualidade e arquitetura de código Python.
- Líderes técnicos e engenheiros de MLOps/DevOps que trabalham com bases de código Python.
Testemunhos de Clientes (2)
tudo estava perfeito
Florin Vrincianu
Curso - Python Programming Fundamentals
Máquina Traduzida
Exercícios práticos relacionados ao conteúdo realmente ajudam a entender mais sobre cada tópico. Além disso, o estilo de começar a aula com uma palestra e continuar com exercícios práticos é bom e útil para relacionar com a palestra apresentada anteriormente.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Curso - Introduction to Data Science and AI using Python
Máquina Traduzida