quem quiser acompanhar

ratamero.com

use as setas/swipes pra navegar ;)

o código está no github:

https://github.com/lucianoratamero/django-react-blog-example

quem?

Luciano Ratamero

Python/JavaScript

lucianoratamero.github.io

fb.com/lucianoratamero

@lucianoratamero

Django + React: dicas para quem quer fazer sua primeira app desacoplada

PythOnRio - 2017

quatro tópicos (se der tempo)

  • automatização de processos/envs
  • reuso de views e refatoração de contextos django
  • agrupamento de actions/reducers e asyncDispatch
  • imutáveis para props

(aqui você já pode scrollar pro lado direito ;D)

dotenv (do lado do react)

  • facilita a gestão de opcões globais
  • deixa as opções do react com cara de settings do django
  • configuração zero

npm scripts/makefile

  • facilitam lançamento de scripts secundários
  • te dão a opção de gerir processos de deploy/build
  • implementação js/shell

virtualenvwrapper/postactivate

  • facilitam gestão de projetos
  • adicionam ao path comandos úteis
  • não são acoplados ao sistema operacional como o autoenv

refatoração de views com uso de presenters

  • minimizam o esforço de refatoração
  • não dependem do django rest framework
  • isolam papéis que já deveriam ser distintos

react e redux: como funcionam?

  • react => componentes => estados
  • redux => ações => mudanças de estados
  • componente => action => requisição => reducer => componente

problemas

  • repetição eterna de código
  • requisições dentro das actions
  • controle chato de múltiplos disparos
  • controle de fluxo no componente

middleware de agrupamento de actions no react

  • minimizam repetição de código
  • facilitam controle de disparo de requisições
  • abstrai requisições do código redux

asyncDispatch

  • facilita disparo tardio e enfileiramento de actions
  • permite otimizações internas do react/redux
  • deixa na camada do redux o que é do redux

immutablejs

  • evitam múltiplos disparos de redraws de componentes
  • mantêm estáveis as props
  • facilitam a réplica/filtragem de dados internos do componente

perguntas?

luciano@ratamero.com

cerveja/café