Pare de usar
Django
Blumenau Dev Day 2023 @hs.blumenau
Slide 2
Slide 2 text
Pare de usar
Django para tudo
Blumenau Dev Day 2023 @hs.blumenau
Slide 3
Slide 3 text
Sobre mim
Co-organizador do GruPy Blumenau.
Engenheiro de software na Jusbrasil.
Entusiasta do open-source. Produzindo códigos desde
2015. Hoje estou mais próximo das linguagens de
programação Python, Golang e Javascript, mas também
já trabalhei PHP e Java.
@jjpaulo2
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
blumenau.sc.python.org.br
Slide 6
Slide 6 text
Pare de usar
Django para tudo
Blumenau Dev Day 2023 @hs.blumenau
Slide 7
Slide 7 text
Antes de tudo…
Calma ai! Não iremos falar
mal do Django.
Slide 8
Slide 8 text
Mas seremos realistas.
Slide 9
Slide 9 text
Serve também para
outros frameworks
Slide 10
Slide 10 text
Mas todos os exemplos serão
contextualizados em Python
Slide 11
Slide 11 text
O que é o Django
00. Conceitos mínimos que
precisamos compreender
Slide 12
Slide 12 text
Django
Um framework full-stack para Python. Torna tarefas
complexas, extremamente simples.
Nasceu como um CMS para gerenciar um site de
notícias em Lawrence, Kansas, EUA.
Se tornou um projeto de código-aberto em 2005.
Slide 13
Slide 13 text
ORM + Migrations
Modelagem de banco de dados
totalmente descomplicada com
migrations automáticas.
Auth + Permissions
Modelagem e métodos de
autenticação prontos,
juntamente com um sistema de
permissões e grupos.
Template Engine
Linguagem de templates
extremamente poderosa para
construir páginas web.
Caching
Faça cache de consultas,
páginas e métodos de forma
extremamente simples.
Principais features
Slide 14
Slide 14 text
❤ Django Admin ❤
Slide 15
Slide 15 text
Onde aprender?
Tutorial Django Girls
Projeto mundial focado em
ensinar programação para
mulheres.
Documentação Oficial
Até hoje, tida como uma das
melhores documentações já
escritas.
Slide 16
Slide 16 text
Controle
01. Não perca o controle do que
você está desenvolvendo
Slide 17
Slide 17 text
Controle
Saiba de tudo que
acontece na sua aplicação
Agilidade
Agregar valor à aplicação
no menor tempo possível
VS
Slide 18
Slide 18 text
Agilidade
Solução para um problema comum
01.
Lançamento de um produto mínimo
02.
Slide 19
Slide 19 text
Controle
Solução para um problema não tão comum
01.
Seu produto já é grande e precisa ir além
02.
Slide 20
Slide 20 text
Controle
Saiba de tudo que
acontece na sua aplicação
Agilidade
Agregar valor à aplicação
no menor tempo possível
VS
Slide 21
Slide 21 text
O seu nível de controle em baixo nível das
suas aplicações em Django é limitado.
Slide 22
Slide 22 text
Objetivo
02. O seu projeto e o framework buscam
resolver o problemas similares?
Slide 23
Slide 23 text
Se uma tecnologia não
resolve o seu problema, não
há necessidade de usá-la.
Slide 24
Slide 24 text
Exemplo
SQL vs NoSQL
O hype do MongoDB fez muitos times migragem do Postgres, atrás de
promessas de performance.
Entretanto, eles continuavam modelando os dados, como se fosse um
banco relacional.
Slide 25
Slide 25 text
Exemplo
SQL vs NoSQL
Consequência
Voltaram para o Postgres, pois entenderam que não havia necessidade
de utilização de um banco orientado à documentos.
Slide 26
Slide 26 text
CRUD em bancos relacionais
01.
Renderização de páginas web
02.
Construção de APIs HTTP
03.
Autenticação e permissões
04.
Principais problemas que o Django resolve
Slide 27
Slide 27 text
Alguns problemas que o Django não resolve
CRUD em bancos não relacionais
01.
Manipulação de infraestrutura
02.
Enfileiramento de tarefas
03.
Escrita e leitura de arquivos
04.
Slide 28
Slide 28 text
Performance
03.
A abstração cobra o preço
Slide 29
Slide 29 text
cursor.execute("INSERT INTO …")
Pilha de chamadas do framework
salvando um registo no banco
my_model.save()
Slide 30
Slide 30 text
cursor.execute(...)
my_model.save()
Identificar qual banco de dados estou usando
Montar a query do banco de dados
Um monte de coisa que eu não conheço
Comunicação com o driver do banco de dados
Pilha de chamadas do framework
salvando um registo no banco
Slide 31
Slide 31 text
Benchmarks
Slide 32
Slide 32 text
Aumentar a performance de uma
aplicação Django vai exigir
conhecimentos avançados no
framework e em Python.
Slide 33
Slide 33 text
Código
04. Ainda escrevemos código
como em 2005?
Slide 34
Slide 34 text
Django é famoso por ter uma interface
de código extremamente estável.