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

TDD com Python e App Engine

TDD com Python e App Engine

O caminho das pedras para fazer TDD com Python no App Engine

rbanffy

June 26, 2014
Tweet

More Decks by rbanffy

Other Decks in Programming

Transcript

  1. Pesquisa • Quem já usa App Engine com Python? •

    Quem faz TDD com App Engine em Python? • Quem escreve testes?
  2. O que é o Google App Engine • Uma plataforma

    de PaaS • APIs e bibliotecas "próprias" ◦ mas roda aplicações Django, Flask etc • Você nunca se preocupa com o servidor • O time da Google administra tudo pra você • Ambiente de desenvolvimento local • Deployment com o SDK (ou com git)
  3. O que tem no Google App Engine • Spin-up e

    spin-down automágico • Pay-as-you-go • Datastore (NoSQL) + Google Cloud SQL • Filas - para processamento assíncrono • NDB - Quem não espera não cansa • Autenticação • Um framework que incentiva boas práticas ◦ E castiga você pelas más
  4. O que mais? • Uma interface de gerenciamento • É

    fácil trocar versões ◦ E fazer split entre versões • Uma nova interface de gerenciamento nova ◦ Integrada com os outros serviços de cloud da Google
  5. O que já tínhamos • GAEUnit ◦ Deploy do código

    de teste em produção ◦ Ainda funciona? • Ferramental do SDK ◦ Batteries not included • NoseGAE, pytest-gae ◦ Some batteries included • ?
  6. Por que fazer mais um • Incluir pilhas no pacote

    • Ter opinião pode ser uma boa idéia ◦ Convenção sobre configuração ajuda • Algumas coisas fazem falta no ferramental do SDK ◦ Faltam mais exemplos ◦ O jeito com que o Django lida com fixtures é duca
  7. Por que fazer mais um (continuação) • Virtualenvs são legais

    ◦ Quebrar o Python do sistema é sempre ruim ◦ O Python do sistema pode não ser uma opção ▪ Algumas pessoas usam Windows • Quando é difícil testar, ninguém testa ◦ preguiça é a primeira virtude do programador (embora, nesse caso, não seja uma) • Um pouco de hand-holding ajuda
  8. O que fizemos • Um projeto-base (no GitHub) • Monta

    um virtualenv • Roda testes de sanidade • Dados de teste em JSON • Ambiente montado com um Makefile • Testes independem do framework que você está usando • Dá pra usar ipdb (nos testes)!
  9. O que falta fazer • Importar hierarquias de objetos para

    testes • Tornar mais fácil usar em projetos já em andamento ◦ Sobretudo manter o maquinário atualizado ◦ Se bem que isso pode nem ser importante • Precisamos de mais usuários ◦ Que dêem mais palpites