Neste módulo apresentaremos conceitos avançados da linguagem Python e do framework Django.  Abordaremos os processos de deploy, falaremos também de alta disponibilidade de aplicações Django, integração contínua usando inicialmente Travis-CI.

O aluno aprenderá o que são generators, e os utilizará em um caso real escrevendo uma aplicação real time com Django. Escreverá decorators especializados para otimizar o controle de permissões no Django e aprenderá conceitos como Middlewares e Context Processors,  customização de backends de conexão a banco de dados, autenticação e envio de email.

Aprenderá a trabalhar com o sistema de tarefas usando Celery, a utilizar outros tipos de workers assíncronos como gevent, criar filas independentes para tasks que não podem ser concorrentes.

Dentro desse módulo aprenderá em como customizar 100% do Django Admin, usando recursos da própria ferramenta.

Saberá debugar uma aplicação que esteja em estado crítico em nível de performance e a solucionar o problema usando boas práticas do Django.

Dentro do módulo de monitoramento você aprenderá a monitorar todos os recursos consumidos pela aplicação online dentro do servidor de produção e ainda, entender todas as queries SQL processada pelo Django em backend.

Abordaremos também tópicos como:

1. ORM - recursos avançados como aggregate, annotate, transactions, otimização de queries, etc;

2. Polimorfismo - como aplicar polimorfismo e como otimizar o uso de polimorfismo dentro do Django

3. Forms - recursos avançados como criar widget, tratamento de dados em tempo real; uso avançado de migração - aprenderá a usar data migration para migração de dados entre tabelas ou banco de dados; entre outros.

Ao final deste módulo o aluno criará uma estrutura de deploy profissional usando puppet, para automatizar a configurar do ambiente; e fabric, para automatizar o deploy de sua aplicação Django, colocando no ar em uma instância de cloud fornecida pela YACOWS.

Boas práticas, performance, monitoramento.. e muito mais!!!

 

Conteúdo Programático

 

1 - Python avançado

  • string encoding
  • Threading e Processing
  • Criando objetos iteráveis
  • Gerenciamento de contexto
  • Mixins, mro e super()
  • Monkey patching
  • Lazy evaluation
  • Importando objetos dinamicamente
  • async

2 - Django avançado

  • GenericView
  • O que é?
  • Porque usar?
  • Todos os tipo padrão do Django
  • Especializando sua View

3 - Middleware

  • O que é?
  • Padrões do Django
  • Criando seu próprio

4 - Context Processors

  • O que é?
  • Padrões do Django
  • Criando seu próprio

5 - Cache

  • Porque usar?
  • Cache em URLs
  • Cache de queryset
  • Backends de cache

6 - Herança de modelo

  • Abstract Base Class
  • Multi-Table
  • Proxy

7 - Denormalização

  • O que é?
  • Realmente é performático?
  • Até onde posso ir sem ter problemas futuros?

8 - Formulário avançado

  • Criando Widget personalizado
  • Criando Field personalizado
  • Validações complexas

9 - Django Admin avançado

  • Customização de ações
  • Customização de views
  • Customização de url
  • Customização de template

10 - Managers

  • O que é?
  • Criando managers próprios

11 - Gerenciador de tarefa (Celery)

  • O que é?
  • Filas concorrentes
  • Prioridades
  • Usango gevent para melhorar performance

12 - Monitoramento

  • Como sua aplicação se comporta em produção
  • Ferramentas para facilitar o trabalho

13 - Profile

  • Tecnicas para achar o gargalo de sua aplicação
  • Django Admin (ate onde é válido usá-lo)

14 - Deploy profissional

  • Montando ambiente de produção
  • NGINX
  • Supervisor
  • Gunicorn
  • Fabric

 

Instrutores

Bruno Rocha

Desenvolvedor web YACOWS
Programador Python com experiência em desenvolvimento web com os frameworks Django, Flask e web2py.

Autor do livro "web2py development cookbook", membro da Python Software Foundation, colaborador emalguns projetos open source como Opps CMS, web2py framework e Quokka CMS.

Thiago Avelino

Engenheiro de software YACOWS
Engenheiro de software na YACOWS e programador Python com grande experiência em Django, membro da Django Foundation e do time de desenvolvimento do Django.

Colaborador em alguns projetos open source como Opps CMS, Django, MongoEngine etc.

Carga Horária:

16Hrs.

Pré-requisitos

  • Cada aluno deverá trazer seu próprio notebook;
  • Obrigatório ter cursado o treinamento intermediário e/ou possuir conhecimentos equivalentes.

Investimento

  • Presencial: R$ 999,99
  • On-Line:     R$ 699,99

Calendário

Consulte nossa próxima turma: contato@yacows.com.br