SlideShare a Scribd company logo
1 of 74
Download to read offline
VII Encontro




Coding Dojo e Test Driven Development
Brunno Gomes 



 twitter.com/brunnogomes
 brunnolgp@gmail.com
Rodrigo Alves Vieira

  rodrigo3n.com
   twitter.com/rodrigo3n
   rodrigo3n@gmail.com
Coding Dojo

    + 
 Test Driven
Development
Coding Dojo?
flickr{rosie_hardy}
Test Driven
Development
       
flickr{chuckbiscuito}
Técnica apresentada por 
Kent Beck em seu livro (Test 
  Driven Development: By 
 Example, 2003), tem como 
    objetivo aumentar a 
   qualidade do software 
      escrito além das 
      capacidades do 
       programador 
Hmmm, TDD?!.. 
...Python tem o...
unittest
unittest
flickr{shutterhack}




   unittest
• O unittest (também chamado de 
  PyUnit) é um Framework built-in do 
  Python para Testes Unitários criado 
  por Steve Purcell em 2001. Baseado 
  no JUnit e no Smalltalk Testing 
  Framework
• Está incluso na biblioteca padrão do 
  Python desde a versão 2.1 (2001).
Vantagens
• É uma biblioteca padrão do Python
Vantagens
• É uma biblioteca padrão do Python
• É muito prática. Curva mínima de
  aprendizado
Vantagens
• É uma biblioteca padrão do Python
• É muito prática. Curva mínima de
  aprendizado
• Presente em todos os interpretadores
  do Python
Vantagens
• É uma biblioteca padrão do Python
• É muito prática. Curva mínima de
  aprendizado
• Presente em todos os interpretadores
  do Python
• É util pra qualquer projeto!
Qualquer
projeto!
O Framework

•TestCase
O Framework

•TestCase
•TestSuite
O Framework

•TestCase
•TestSuite
•TextTestRunner
Comece testando o
 código que você
    quer ter!
unittest.TestCase
# -*- encoding:utf-8 -*-
# aviao_teste.py

import unittest
from aviao import Aviao

class AviaoTeste(unittest.TestCase):
    """
    Documentação de AviaoTest
    """
    def testeAviaoCriado(self):
         aviao = Aviao(10)
         self.assertNotEqual(aviao == None, aviao)

if __name__ == "__main__":
    unittest.main()
flickr{saguar}




     Obviamente falha!
Completamos o primeiro passo do ciclo
 do TDD: escrevemos um teste como
  queremos que o código funcione. 

 Agora escreveremos apenas o código
 suficiente para fazer o teste passar!
# -*- encoding:utf-8 -*-
# aviao.py

tanque = 10

class Aviao():
    def __init__(self, encher_o_tanque=tanque):
        print "Executando testes..."
flickr{naty_nina}




Fizemos o primeiro teste passar!




 Agora vem a...
flickr{finsterbaby}




                      ...Refatoração!
Aqui pensamos 
atenciosamente no que os 
  testes estão fazendo. 
Melhoramos a qualidade do 
 código fonte e do próprio 
    teste e removemos 
        duplicação
# -*- encoding:utf-8 -*-
# aviao_teste.py

import unittest
from aviao import Aviao

class AviaoTeste(unittest.TestCase):
    """
    Documentação de AviaoTest
    """
    def testeAviaoCriado(self):
         aviao = Aviao(10)
         self.assertNotEqual(aviao == None, aviao), 
                 "Avião não pode ser None"

if __name__ == "__main__":
    unittest.main()
Pro-dica: Execute os testes com a opção '-v' e veja 
   a execução de cada teste em modo verboso!




~λ python aviao_teste.py                     -v
unittest.TestSuite

 Uma ferramenta do unittest para 
   agrupar testes individuais e 
organizar 'pilhas' de testes, mesmo 
 em diferentes arquivos/módulos, 
     criando Suítes de Teste!
Criando uma suíte de Testes
 # -*- encoding:utf-8 -*-
 # aviao_test_suite.py

 import unittest
 import aviao_teste

 def suite():
     testsuite = unittest.TestSuite()
     testsuite.addTest(unittest.makeSuite(AviaoTeste)
     return testsuite




Ou ainda melhor...
A classe TestSuite torna ainda mais 
poderosa sua suíte de testes porque você 
 pode importar quantos módulos quiser 
 contendo uma quantidade qualquer de 
                 testes!

 Então você pode aninhar os testes para 
         dinamizar a execução!
E com 'aninhar' eu quis dizer que você 
 pode aninhar até outras suítes de testes!
import unittest
from aviao_test_suite import AviaoTestSuite
from outro_modulo import OutraTestSuite

suite1 = aviao_test_suite.AviaoTestSuite
suite2 = outro_modulo.OutraTestSuite

teste_geral = unittest.TestSuite((suite1, suite2))



Uma suíte de testes que execua outra suíte de 
testes! Massa!
unittest.TextTestRunner

 Claro que testes são 
documentação também, 
então, nada melhor que 
 tê-los disponíveis em 
       texto puro! 
E é exatamente isso que o TextTestRunner 
    faz cada vez que o invocamos com 
"unittest.main()" no arquivo aviao_teste.py!

unittest.main() gera um objeto TestSuite que 
    contém todos os testes(métodos) que 
 começam com "test" (testAviaoCriado, 
      por exemplo) , então ele invoca o 
 TextTestRunner que executa cada um dos 
  testes e te retorna o resultado via stderr!
Nossa suíte final de testes!
# -*- encoding:utf-8 -*-
# aviao_teste_suite.py

import unittest
from aviao_test import *

class AviaoTesteSuite(unittest.TestSuite):
    def __init__(self):
        unittest.TestSuite.__init__(self.map(AviaoTeste, 
            ("AviaoTeste")))

    def suite(self):
        suite = unittest.TestSuite()
        suite.addTest(unittest.makeSuite(AviaoTeste))
        return suite

suite1 = unittest.TestSuite()
suite1.addTest(AviaoTeste("testeAviaoCriado"))

unittest.TextTestRunner().run(suite1)
unittest.TextTestRunner(verbosity=2).run(suite())
mais informações:

 help(unittest)
flickr{ibcbulk}




Fazer TDD é
como andar de
bicicleta!
Coding Dojo
Porque ?
Nós não
treinamos.
O que é ?
De acordo com o CodingDojo.Org

     “Um encontro onde um grupo de
programadores se junta para trabalhar num
 desafio de programação. O objetivo é se
divertir praticar deliberadamente de forma a
        melhorar suas habilidades.”
Prática
Deliberada.
Não é...
...um lugar para
 pura exibição.
... competição.
Características
• Passos de bebê
• Todos são iguais
• Todos devem entender
• Sempre começa do zero
• Sempre se usa testes
• Iterativo e Interativo
• Interrupções incentivadas
• Abertura para novas idéias
Algumas
 regras
• Computador + Projetor
• Piloto + co-piloto
• TDD
  vermelho → verde → refatorar
Estilos
PreparedKata
• Piloto e co-piloto fixos
• Apresentam uma solução do
  início ao fim
• Cada passo é explicado
• Indicado para um grande
  número de participantes
• Pode-se usar um problema e
  solução previamente
  preparados
RandoriKata
• Piloto e co-piloto revezam
• Todos os presentes são
  convidados a participar
• Cada par tem um tempo para
  programar
• Indicado para grupos
  menores
• O ideal é que todos os
  participantes programem
Problemas e
 Soluções
• Problemas simples
• Qualquer um pode propor
• Tem que começar e terminar
  na mesma sessão do Dojo
Depois do Dojo
• O que aprendemos ?
• O que foi bom ?
• O que foi ruim ?
Valeu! o/

More Related Content

What's hot

Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonGiancarlo Silva
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termosValore I/O
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 pythonTiago
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvPedro Fernandes Vieira
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonFlávio Ribeiro
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
PHPSP TestFest 2010
PHPSP TestFest 2010PHPSP TestFest 2010
PHPSP TestFest 2010Rafael Dohms
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonPriscila Mayumi
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Felipe Queiroz
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Sidney Roberto
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores RubyEric Hideki
 

What's hot (19)

Seminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem PythonSeminário - Guido van Rossum: Breve história da linguagem Python
Seminário - Guido van Rossum: Breve história da linguagem Python
 
A lógica do Python e seus termos
A lógica do Python e seus termosA lógica do Python e seus termos
A lógica do Python e seus termos
 
Canivete suíço do Python
Canivete suíço do PythonCanivete suíço do Python
Canivete suíço do Python
 
Python 3k
Python 3kPython 3k
Python 3k
 
Python na Web
Python na WebPython na Web
Python na Web
 
Python para Programadores
Python para ProgramadoresPython para Programadores
Python para Programadores
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Aula 01 python
Aula 01 pythonAula 01 python
Aula 01 python
 
Lab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenvLab python django - parte 2 - python + virtualenv
Lab python django - parte 2 - python + virtualenv
 
Desenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando PythonDesenvolvimento de aplicações embarcadas utilizando Python
Desenvolvimento de aplicações embarcadas utilizando Python
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
PHPSP TestFest 2010
PHPSP TestFest 2010PHPSP TestFest 2010
PHPSP TestFest 2010
 
Apresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação PythonApresentando a Linguagem de Programação Python
Apresentando a Linguagem de Programação Python
 
PHPBR TestFest
PHPBR TestFestPHPBR TestFest
PHPBR TestFest
 
Como tornar-se um programador Python melhor
Como tornar-se um programador Python melhorComo tornar-se um programador Python melhor
Como tornar-se um programador Python melhor
 
Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!Django: desenvolvendo aplicações web de maneira simples e rápida!
Django: desenvolvendo aplicações web de maneira simples e rápida!
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 

Viewers also liked

Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebNielson Santana
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Pythonpugpe
 
Python Debugger - PUG-PE
Python Debugger - PUG-PE Python Debugger - PUG-PE
Python Debugger - PUG-PE Arthur Alvim
 
Qml + Python
Qml + PythonQml + Python
Qml + Pythonpugpe
 
Clustering com numpy e cython
Clustering com numpy e cythonClustering com numpy e cython
Clustering com numpy e cythonAnderson Dantas
 
(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xvraonyaraujo
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com PythonHugo Serrano
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDRafael Carício
 
Criando comunidades bem sucedidas
Criando comunidades bem sucedidasCriando comunidades bem sucedidas
Criando comunidades bem sucedidaspugpe
 
Porque foi bom aprender com Python
Porque foi bom aprender com PythonPorque foi bom aprender com Python
Porque foi bom aprender com PythonFernando Rocha
 
Python na formacao_de_jovens
Python na formacao_de_jovensPython na formacao_de_jovens
Python na formacao_de_jovensMarcos Egito
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMpugpe
 
Wikilytics
WikilyticsWikilytics
Wikilyticspugpe
 
Palestra sobre Inteligência Coletiva
Palestra sobre Inteligência ColetivaPalestra sobre Inteligência Coletiva
Palestra sobre Inteligência Coletivapugpe
 
Apresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEApresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEMarcel Caraciolo
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Pythonpugpe
 

Viewers also liked (20)

Pyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para WebPyjamas: Uma Ferramenta Pythônica para Web
Pyjamas: Uma Ferramenta Pythônica para Web
 
Palestra sobre Collections com Python
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
 
Pug
PugPug
Pug
 
Python Debugger - PUG-PE
Python Debugger - PUG-PE Python Debugger - PUG-PE
Python Debugger - PUG-PE
 
Pep 8
Pep 8Pep 8
Pep 8
 
Qml + Python
Qml + PythonQml + Python
Qml + Python
 
Clustering com numpy e cython
Clustering com numpy e cythonClustering com numpy e cython
Clustering com numpy e cython
 
(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv(entregando djangoapps)@tangerinalab - pugpe xv
(entregando djangoapps)@tangerinalab - pugpe xv
 
Arduino e python
Arduino e pythonArduino e python
Arduino e python
 
Computação Científica com Python
Computação Científica com PythonComputação Científica com Python
Computação Científica com Python
 
Peça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDDPeça seu código em casamento: Votos, Tópicos e TDD
Peça seu código em casamento: Votos, Tópicos e TDD
 
Criando comunidades bem sucedidas
Criando comunidades bem sucedidasCriando comunidades bem sucedidas
Criando comunidades bem sucedidas
 
Porque foi bom aprender com Python
Porque foi bom aprender com PythonPorque foi bom aprender com Python
Porque foi bom aprender com Python
 
Python na formacao_de_jovens
Python na formacao_de_jovensPython na formacao_de_jovens
Python na formacao_de_jovens
 
Python e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMMPython e Cadeias de Markov GHMM
Python e Cadeias de Markov GHMM
 
Wikilytics
WikilyticsWikilytics
Wikilytics
 
Palestra sobre Inteligência Coletiva
Palestra sobre Inteligência ColetivaPalestra sobre Inteligência Coletiva
Palestra sobre Inteligência Coletiva
 
Apresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PEApresentando o I Toró de Palestras do PUG-PE
Apresentando o I Toró de Palestras do PUG-PE
 
NoSQL com Cassandra e Python
NoSQL com Cassandra e PythonNoSQL com Cassandra e Python
NoSQL com Cassandra e Python
 
REST APIs com Django
REST APIs com DjangoREST APIs com Django
REST APIs com Django
 

Similar to Coding Dojo e Test Driven Development

Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Desenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitDesenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitAdolfo Neto
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislAdriano Petrich
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDDDextra
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Testando Aplicações com PHPT
Testando Aplicações com PHPTTestando Aplicações com PHPT
Testando Aplicações com PHPTSidney Souza
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade IIIJoão Lourenço
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitDiego Tremper
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesCamilo Ribeiro
 
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDRaphael Pacheco
 

Similar to Coding Dojo e Test Driven Development (20)

TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Desenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com JunitDesenvolvimento Dirigido por Testes com Junit
Desenvolvimento Dirigido por Testes com Junit
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Minicurso de TDD
Minicurso de TDDMinicurso de TDD
Minicurso de TDD
 
JUnit
JUnitJUnit
JUnit
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
Java 12
Java 12Java 12
Java 12
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
TDD com Python
TDD com PythonTDD com Python
TDD com Python
 
Testando Aplicações com PHPT
Testando Aplicações com PHPTTestando Aplicações com PHPT
Testando Aplicações com PHPT
 
Testes com JUnit
Testes com JUnitTestes com JUnit
Testes com JUnit
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Teste de Integração - Unidade III
Teste de Integração - Unidade IIITeste de Integração - Unidade III
Teste de Integração - Unidade III
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Desenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por TestesDesenvolvimento Dirigido por Testes
Desenvolvimento Dirigido por Testes
 
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDDABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
ABAP Code Retreat Brasil - Apagando tudo e começando novamente: Conhecendo o TDD
 

More from pugpe

Projeto Amadeus
Projeto AmadeusProjeto Amadeus
Projeto Amadeuspugpe
 
E o que danado é o PUG-PE?
E o que danado é o PUG-PE?E o que danado é o PUG-PE?
E o que danado é o PUG-PE?pugpe
 
Intro
IntroIntro
Intropugpe
 
Construindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com PythonConstruindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com Pythonpugpe
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvaspugpe
 
Automatizando tarefas com Python
Automatizando tarefas com PythonAutomatizando tarefas com Python
Automatizando tarefas com Pythonpugpe
 
Visualização da Informação
Visualização da InformaçãoVisualização da Informação
Visualização da Informaçãopugpe
 
Blender Com Python
Blender Com PythonBlender Com Python
Blender Com Pythonpugpe
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app enginepugpe
 
Pip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para PythonPip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para Pythonpugpe
 
Pug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debuggerPug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debuggerpugpe
 
Pug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debuggerPug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debuggerpugpe
 
Python e Django
Python e DjangoPython e Django
Python e Djangopugpe
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveispugpe
 
Redes Neurais e Python
Redes Neurais e PythonRedes Neurais e Python
Redes Neurais e Pythonpugpe
 
CATS: Sistema de Recomendação de Eventos
CATS: Sistema de Recomendação de EventosCATS: Sistema de Recomendação de Eventos
CATS: Sistema de Recomendação de Eventospugpe
 
Python Funcional
Python FuncionalPython Funcional
Python Funcionalpugpe
 
Open Allure
Open AllureOpen Allure
Open Allurepugpe
 
Iron Python
Iron PythonIron Python
Iron Pythonpugpe
 

More from pugpe (19)

Projeto Amadeus
Projeto AmadeusProjeto Amadeus
Projeto Amadeus
 
E o que danado é o PUG-PE?
E o que danado é o PUG-PE?E o que danado é o PUG-PE?
E o que danado é o PUG-PE?
 
Intro
IntroIntro
Intro
 
Construindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com PythonConstruindo uma startup em 54 horas com Python
Construindo uma startup em 54 horas com Python
 
Rain Toolbox - Previsão de Chuvas
Rain Toolbox -  Previsão de ChuvasRain Toolbox -  Previsão de Chuvas
Rain Toolbox - Previsão de Chuvas
 
Automatizando tarefas com Python
Automatizando tarefas com PythonAutomatizando tarefas com Python
Automatizando tarefas com Python
 
Visualização da Informação
Visualização da InformaçãoVisualização da Informação
Visualização da Informação
 
Blender Com Python
Blender Com PythonBlender Com Python
Blender Com Python
 
Desenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engineDesenvolvendo aplicativos web com o google app engine
Desenvolvendo aplicativos web com o google app engine
 
Pip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para PythonPip - Instalando Pacotes facilmente para Python
Pip - Instalando Pacotes facilmente para Python
 
Pug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debuggerPug pe vii - luciano rodrigues - debugger
Pug pe vii - luciano rodrigues - debugger
 
Pug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debuggerPug pe viii - luciano rodrigues - debugger
Pug pe viii - luciano rodrigues - debugger
 
Python e Django
Python e DjangoPython e Django
Python e Django
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveis
 
Redes Neurais e Python
Redes Neurais e PythonRedes Neurais e Python
Redes Neurais e Python
 
CATS: Sistema de Recomendação de Eventos
CATS: Sistema de Recomendação de EventosCATS: Sistema de Recomendação de Eventos
CATS: Sistema de Recomendação de Eventos
 
Python Funcional
Python FuncionalPython Funcional
Python Funcional
 
Open Allure
Open AllureOpen Allure
Open Allure
 
Iron Python
Iron PythonIron Python
Iron Python
 

Coding Dojo e Test Driven Development