Slide 1

Slide 1 text

TDD com App Engine e Python um jeito simples

Slide 2

Slide 2 text

Pesquisa ● Quem já usa App Engine com Python? ● Quem faz TDD com App Engine em Python? ● Quem escreve testes?

Slide 3

Slide 3 text

O que é o Google App Engine

Slide 4

Slide 4 text

O que é o Google App Engine

Slide 5

Slide 5 text

O que é o Google App Engine

Slide 6

Slide 6 text

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)

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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 ● ?

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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)!

Slide 13

Slide 13 text

Como se usa? Demo 1. git clone 2. make venv 3. nosetests

Slide 14

Slide 14 text

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