SlideShare uma empresa Scribd logo
1 de 16
TDD com App Engine e
Python
um jeito simples
Pesquisa
● Quem já usa App Engine com Python?
● Quem faz TDD com App Engine em Python?
● Quem escreve testes?
O que é o Google App Engine
O que é o Google App Engine
O que é o Google App Engine
O que é o Google App Engine
● Uma plataforma de PaaS
● APIs e bibliotecas "próprias"
o 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)
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
o E castiga você pelas más
O que mais?
● Uma interface de gerenciamento
● É fácil trocar versões
o E fazer split entre versões
● Uma nova interface de gerenciamento nova
o Integrada com os outros serviços de cloud da
Google
O que já tínhamos
● GAEUnit
o Deploy do código de teste em produção
o Ainda funciona?
● Ferramental do SDK
o Batteries not included
● NoseGAE, pytest-gae
o Some batteries included
● ?
Por que fazer mais um
● Incluir pilhas no pacote
● Ter opinião pode ser uma boa idéia
o Convenção sobre configuração ajuda
● Algumas coisas fazem falta no ferramental
do SDK
o Faltam mais exemplos
o O jeito com que o Django lida com fixtures é duca
Por que fazer mais um (continuação)
● Virtualenvs são legais
o Quebrar o Python do sistema é sempre ruim
o O Python do sistema pode não ser uma opção
 Algumas pessoas usam Windows
● Quando é difícil testar, ninguém testa
o preguiça é a primeira virtude do programador
(embora, nesse caso, não seja uma)
● Um pouco de hand-holding ajuda
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)!
Como se usa?
Demo
1. git clone
o git@github.com:rbanffy/testable_appengine.git
2. make venv
3. nosetests
O que falta fazer
● Importar hierarquias de objetos para testes
● Tornar mais fácil usar em projetos já em
andamento
o Sobretudo manter o maquinário atualizado
o Se bem que isso pode nem ser importante
● Precisamos de mais usuários
o Que dêem mais palpites
Dúvidas?
Contato
about.me/rbanffy
@rbanffy
https://github.com/rbanffy/testable_appengine

Mais conteúdo relacionado

Mais procurados

Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeWende Mendes
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Leonardo Kobus
 
Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Diego Pacheco
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testeskinow
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoLeonardo Galani
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Automatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDDAutomatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDDFernanda Ferreira
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureGrupo de Testes Carioca
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017Renato Groff
 
Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Renato Groff
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaFernando Boaglio
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Bruno Maomeh
 
.NET Core e Testes de Unidade - Visual Studio Summit 2017
.NET Core e Testes de Unidade - Visual Studio Summit 2017.NET Core e Testes de Unidade - Visual Studio Summit 2017
.NET Core e Testes de Unidade - Visual Studio Summit 2017Renato Groff
 
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemMinas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemStefan Teixeira
 

Mais procurados (20)

Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Be React. Do Tests!
Be React. Do Tests!Be React. Do Tests!
Be React. Do Tests!
 
TDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - FloripaTDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - Floripa
 
Como aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipeComo aumentar a produtividade da sua equipe
Como aumentar a produtividade da sua equipe
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Integração Continua - Jenkins
Integração Continua - JenkinsIntegração Continua - Jenkins
Integração Continua - Jenkins
 
Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2Treinamento Testes Unitários - parte 2
Treinamento Testes Unitários - parte 2
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 
Botando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testesBotando o Jenkins para rodar seus testes
Botando o Jenkins para rodar seus testes
 
Tester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitidoTester, pegue suas coisas, você está demitido
Tester, pegue suas coisas, você está demitido
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Automatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDDAutomatizando testes funcionais com a técnica BDD
Automatizando testes funcionais com a técnica BDD
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Jenkins
JenkinsJenkins
Jenkins
 
TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017TDD e BDD - Developers-SP - Abril/2017
TDD e BDD - Developers-SP - Abril/2017
 
Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016
 
.NET Core e Testes de Unidade - Visual Studio Summit 2017
.NET Core e Testes de Unidade - Visual Studio Summit 2017.NET Core e Testes de Unidade - Visual Studio Summit 2017
.NET Core e Testes de Unidade - Visual Studio Summit 2017
 
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvemMinas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
Minas Testing Conference 2015 - Visual Regression Testing em ambientes na nuvem
 

Destaque

Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEMHicham SBINI
 
produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?Renan Nespolo
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Renzo Nuccitelli
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011get on top gmbh
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im FokusInxmail GmbH
 
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundMaklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundCybay New Media
 
Como fazer um comentário no Blog
Como fazer um comentário no BlogComo fazer um comentário no Blog
Como fazer um comentário no Blogmarlene_herter
 
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...PHINEO gemeinnützige AG
 
Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916Hugo E Martin
 
Congreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineCongreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineNigeŗ Arce
 
Social Media für Unternehmen und Institutionen
Social Media für Unternehmen und InstitutionenSocial Media für Unternehmen und Institutionen
Social Media für Unternehmen und InstitutionenChristian Moeller
 
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGWas User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGONE Schweiz
 
Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtagcamunda services GmbH
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOGary Briceño
 

Destaque (20)

Presentation SEO/SEM
Presentation SEO/SEMPresentation SEO/SEM
Presentation SEO/SEM
 
produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?produção de games com tecnologia livre ou proprietária, Qual usar?
produção de games com tecnologia livre ou proprietária, Qual usar?
 
Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE Python, Google App Engine e Webapp-CE
Python, Google App Engine e Webapp-CE
 
eind presentatie
eind presentatieeind presentatie
eind presentatie
 
Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011Linkbaiting - SEMSEO 2011
Linkbaiting - SEMSEO 2011
 
Performance im Fokus
Performance im FokusPerformance im Fokus
Performance im Fokus
 
SMM-SEO.SEM
SMM-SEO.SEMSMM-SEO.SEM
SMM-SEO.SEM
 
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in DortmundMaklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
Maklerkommunikation 2.0 – Vortrag auf der DKM 2012 in Dortmund
 
Como fazer um comentário no Blog
Como fazer um comentário no BlogComo fazer um comentário no Blog
Como fazer um comentário no Blog
 
Noções de Search Engine
Noções de Search EngineNoções de Search Engine
Noções de Search Engine
 
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
Mehr Wert für Gesellschaft und Unternehmen - Ratgeber für wirkungsvolle Unter...
 
Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916Werksverzeichnis Hans Martin 1916
Werksverzeichnis Hans Martin 1916
 
Smart Industry
Smart IndustrySmart Industry
Smart Industry
 
Congreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engineCongreso visión 2012 - taller introducción app engine
Congreso visión 2012 - taller introducción app engine
 
Social Media für Unternehmen und Institutionen
Social Media für Unternehmen und InstitutionenSocial Media für Unternehmen und Institutionen
Social Media für Unternehmen und Institutionen
 
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AGWas User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
Was User lieben, was sie hassen - Gregor Urech, Sibylle Peuker, Zeix AG
 
Open Source BPM - iteratec Architekturtag
Open Source BPM - iteratec ArchitekturtagOpen Source BPM - iteratec Architekturtag
Open Source BPM - iteratec Architekturtag
 
20100506 JAX BPMN 2.0 in der Praxis
20100506 JAX BPMN 2.0 in der Praxis20100506 JAX BPMN 2.0 in der Praxis
20100506 JAX BPMN 2.0 in der Praxis
 
Communicating sustainibility
Communicating sustainibilityCommunicating sustainibility
Communicating sustainibility
 
CAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEOCAP 2: SEO - Técnicas de SEO
CAP 2: SEO - Técnicas de SEO
 

Semelhante a TDD com App Engine e Python

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentOtavio Augusto
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaRafael Gomes
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Wellington Moreira
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IJoão Lourenço
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyFausto Siqueira
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoDenis Santos
 
Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014Rodrigo Moyle
 
Teste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTeste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTiago Link
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupPamela Canchanya
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e djangoIgor Sobreira
 

Semelhante a TDD com App Engine e Python (20)

Django
DjangoDjango
Django
 
Vamos falar de DevOps?
Vamos falar de DevOps?Vamos falar de DevOps?
Vamos falar de DevOps?
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Precisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestruturaPrecisamos falar sobre Testes de infraestrutura
Precisamos falar sobre Testes de infraestrutura
 
Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?Por quê você deve utilizar TDD?
Por quê você deve utilizar TDD?
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Introdução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade IIntrodução a Testes de Software - Unidade I
Introdução a Testes de Software - Unidade I
 
AutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic AcademyAutomaçãoWeb - Chaordic Academy
AutomaçãoWeb - Chaordic Academy
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
BDD em Ação
BDD em AçãoBDD em Ação
BDD em Ação
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
 
Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014
 
Teste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste vocêTeste sua aplicação antes que ela teste você
Teste sua aplicação antes que ela teste você
 
Continious Delivery in practice - POA Meetup
Continious Delivery in practice - POA MeetupContinious Delivery in practice - POA Meetup
Continious Delivery in practice - POA Meetup
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 

Mais de Ricardo Bánffy

Continuous testing of a terminal font
Continuous testing of a terminal fontContinuous testing of a terminal font
Continuous testing of a terminal fontRicardo Bánffy
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automationRicardo Bánffy
 
Measure everything you can
Measure everything you canMeasure everything you can
Measure everything you canRicardo Bánffy
 
Lessons learned after 190M lessons served
Lessons learned after 190M lessons servedLessons learned after 190M lessons served
Lessons learned after 190M lessons servedRicardo Bánffy
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App EngineRicardo Bánffy
 
Da persistência de idéias ruins
Da persistência de idéias ruinsDa persistência de idéias ruins
Da persistência de idéias ruinsRicardo Bánffy
 
Boredom comes to_those_who_wait
Boredom comes to_those_who_waitBoredom comes to_those_who_wait
Boredom comes to_those_who_waitRicardo Bánffy
 
Quem espera sempre cansa
Quem espera sempre cansaQuem espera sempre cansa
Quem espera sempre cansaRicardo Bánffy
 
Django para infográficos
Django para infográficosDjango para infográficos
Django para infográficosRicardo Bánffy
 
Faça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZFaça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZRicardo Bánffy
 
Ganhando dinheiro com software livre
Ganhando dinheiro com software livreGanhando dinheiro com software livre
Ganhando dinheiro com software livreRicardo Bánffy
 

Mais de Ricardo Bánffy (15)

Continuous testing of a terminal font
Continuous testing of a terminal fontContinuous testing of a terminal font
Continuous testing of a terminal font
 
Monitoring and automation
Monitoring and automationMonitoring and automation
Monitoring and automation
 
Measure everything you can
Measure everything you canMeasure everything you can
Measure everything you can
 
Lessons learned after 190M lessons served
Lessons learned after 190M lessons servedLessons learned after 190M lessons served
Lessons learned after 190M lessons served
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
TDD with Python and App Engine
TDD with Python and App EngineTDD with Python and App Engine
TDD with Python and App Engine
 
Da persistência de idéias ruins
Da persistência de idéias ruinsDa persistência de idéias ruins
Da persistência de idéias ruins
 
Boredom comes to_those_who_wait
Boredom comes to_those_who_waitBoredom comes to_those_who_wait
Boredom comes to_those_who_wait
 
Quem espera sempre cansa
Quem espera sempre cansaQuem espera sempre cansa
Quem espera sempre cansa
 
Zope
ZopeZope
Zope
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Django para infográficos
Django para infográficosDjango para infográficos
Django para infográficos
 
Faça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZFaça seu próprio servidor pirata com OpenVZ
Faça seu próprio servidor pirata com OpenVZ
 
CVS
CVSCVS
CVS
 
Ganhando dinheiro com software livre
Ganhando dinheiro com software livreGanhando dinheiro com software livre
Ganhando dinheiro com software livre
 

TDD com App Engine e Python

  • 1. TDD com App Engine e Python um jeito simples
  • 2. Pesquisa ● Quem já usa App Engine com Python? ● Quem faz TDD com App Engine em Python? ● Quem escreve testes?
  • 3. O que é o Google App Engine
  • 4. O que é o Google App Engine
  • 5. O que é o Google App Engine
  • 6. O que é o Google App Engine ● Uma plataforma de PaaS ● APIs e bibliotecas "próprias" o 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)
  • 7. 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 o E castiga você pelas más
  • 8. O que mais? ● Uma interface de gerenciamento ● É fácil trocar versões o E fazer split entre versões ● Uma nova interface de gerenciamento nova o Integrada com os outros serviços de cloud da Google
  • 9. O que já tínhamos ● GAEUnit o Deploy do código de teste em produção o Ainda funciona? ● Ferramental do SDK o Batteries not included ● NoseGAE, pytest-gae o Some batteries included ● ?
  • 10. Por que fazer mais um ● Incluir pilhas no pacote ● Ter opinião pode ser uma boa idéia o Convenção sobre configuração ajuda ● Algumas coisas fazem falta no ferramental do SDK o Faltam mais exemplos o O jeito com que o Django lida com fixtures é duca
  • 11. Por que fazer mais um (continuação) ● Virtualenvs são legais o Quebrar o Python do sistema é sempre ruim o O Python do sistema pode não ser uma opção  Algumas pessoas usam Windows ● Quando é difícil testar, ninguém testa o preguiça é a primeira virtude do programador (embora, nesse caso, não seja uma) ● Um pouco de hand-holding ajuda
  • 12. 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)!
  • 13. Como se usa? Demo 1. git clone o git@github.com:rbanffy/testable_appengine.git 2. make venv 3. nosetests
  • 14. O que falta fazer ● Importar hierarquias de objetos para testes ● Tornar mais fácil usar em projetos já em andamento o Sobretudo manter o maquinário atualizado o Se bem que isso pode nem ser importante ● Precisamos de mais usuários o Que dêem mais palpites

Notas do Editor

  1. So all its cousins should be perceived as a single family