Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Blumenau Dev Day 2023 - Pare de usar Django (pa...

Blumenau Dev Day 2023 - Pare de usar Django (para tudo)

Palestra realizada no Blumenau Dev Day 2023. No dia 9 de dezembro de 2023.

Nos últimos anos a necessidade de resolver problemas de forma rápida levou muitos desenvolvedores a utilizar o framework Django para resolvê-los na ilusão de uma solução rápida para qualquer tipo de problema. Vamos entender que nem sempre isso é verdade e porque você deveria evitar essa abordagem. Vamos mostrar alternativas e boas práticas dentro e fora do Django para evitar esse "overengineering de framework".

João Paulo Carvalho

December 09, 2023
Tweet

More Decks by João Paulo Carvalho

Other Decks in Programming

Transcript

  1. 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
  2. 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.
  3. 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
  4. 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.
  5. Controle Saiba de tudo que acontece na sua aplicação Agilidade

    Agregar valor à aplicação no menor tempo possível VS
  6. Controle Solução para um problema não tão comum 01. Seu

    produto já é grande e precisa ir além 02.
  7. Controle Saiba de tudo que acontece na sua aplicação Agilidade

    Agregar valor à aplicação no menor tempo possível VS
  8. O seu nível de controle em baixo nível das suas

    aplicações em Django é limitado.
  9. 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.
  10. 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.
  11. 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
  12. 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.
  13. 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
  14. Python Conceitos Boas práticas Ideais pythônicos Necessidades 2005 2023 Evolução

    Python + Conceitos + Boas práticas + Ideais pythônicos + Necessidades +
  15. Python Conceitos Boas práticas Ideais pythônicos Necessidades 2005 2023 Evolução

    Python + Conceitos + Boas práticas + Ideais pythônicos + Necessidades + Nesse meio tempo, a forma como você escreve código em Django praticamente não mudou.