SlideShare uma empresa Scribd logo
Python gil
 IV Encontro GITEC - 2011


     Ramiro Batista da Luz



         26 Outubro 2011




Ramiro Batista da Luz   Python gil
Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz,
2011.
    Python Ágil - IV Encontro do GITEC - 2011




                    Ramiro Batista da Luz   Python gil
Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz,
2011.
    Python Ágil - IV Encontro do GITEC - 2011
    Ramiro Batista da Luz - ramiroluz@gmail.com




                    Ramiro Batista da Luz   Python gil
Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz,
2011.
    Python Ágil - IV Encontro do GITEC - 2011
    Ramiro Batista da Luz - ramiroluz@gmail.com
    Twitter: @ramiroluz




                    Ramiro Batista da Luz   Python gil
Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz,
2011.
    Python Ágil - IV Encontro do GITEC - 2011
    Ramiro Batista da Luz - ramiroluz@gmail.com
    Twitter: @ramiroluz
    http://www.slideshare.net/ramiroluz/
    pythonagilivengitec




                    Ramiro Batista da Luz   Python gil
Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz,
2011.
    Python Ágil - IV Encontro do GITEC - 2011
    Ramiro Batista da Luz - ramiroluz@gmail.com
    Twitter: @ramiroluz
    http://www.slideshare.net/ramiroluz/
    pythonagilivengitec
    Códigos exemplo:




                    Ramiro Batista da Luz   Python gil
Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz,
2011.
    Python Ágil - IV Encontro do GITEC - 2011
    Ramiro Batista da Luz - ramiroluz@gmail.com
    Twitter: @ramiroluz
    http://www.slideshare.net/ramiroluz/
    pythonagilivengitec
    Códigos exemplo:
        http://www.ramiroluz.eti.br/python-agil/




                    Ramiro Batista da Luz   Python gil
Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz,
2011.
    Python Ágil - IV Encontro do GITEC - 2011
    Ramiro Batista da Luz - ramiroluz@gmail.com
    Twitter: @ramiroluz
    http://www.slideshare.net/ramiroluz/
    pythonagilivengitec
    Códigos exemplo:
        http://www.ramiroluz.eti.br/python-agil/
        http://www.python.org.br/wiki/PythonAgil




                    Ramiro Batista da Luz   Python gil
A avestruz e o gato!

  Veloz X Ágil:




    Fonte: http://va.mu/JK27              Fonte: http://va.mu/JK3C




                  Ramiro Batista da Luz   Python gil
O que é agilidade?

      Capacidade de mudar de direção rapidamente.




                    Ramiro Batista da Luz   Python gil
O que é agilidade?

      Capacidade de mudar de direção rapidamente.
      Habilidade de adaptar-se a mudanças com eficiência.




                    Ramiro Batista da Luz   Python gil
O que é linguagem de programação?

     Sequencia de instruções “transformadas” em programas,
     software aplicativo, sistemas operacionais.




                   Ramiro Batista da Luz   Python gil
O que é linguagem de programação?

     Sequencia de instruções “transformadas” em programas,
     software aplicativo, sistemas operacionais.
     Algumas linguagens: C, C++, Visual Basic, Smalltalk, Haskell,
     Lua e Python.




                    Ramiro Batista da Luz   Python gil
O que é Python?

     Linguagem de programação dinâmica, orientada a objetos,
     simples e prática.




                   Ramiro Batista da Luz   Python gil
O que é Python?

     Linguagem de programação dinâmica, orientada a objetos,
     simples e prática.
     Usada para criar os sistemas do Interlegis.




                     Ramiro Batista da Luz   Python gil
O que é Python?

     Linguagem de programação dinâmica, orientada a objetos,
     simples e prática.
     Usada para criar os sistemas do Interlegis.
     Usada desde a infraestrutura de servidores até a web, passando
     por pesquisas científicas e desenvolvimento de jogos bem como
     linguagem de extenso.




                     Ramiro Batista da Luz   Python gil
O que são metodologias ágeis?

      Metodologia de desenvolvimento.




                    Ramiro Batista da Luz   Python gil
O que são metodologias ágeis?

      Metodologia de desenvolvimento.
      Alta participação do(s) cliente(s).




                       Ramiro Batista da Luz   Python gil
O que são metodologias ágeis?

      Metodologia de desenvolvimento.
      Alta participação do(s) cliente(s).
      Adaptação rápida à mudanças.




                       Ramiro Batista da Luz   Python gil
O que são metodologias ágeis?

      Metodologia de desenvolvimento.
      Alta participação do(s) cliente(s).
      Adaptação rápida à mudanças.
      Software funcionando entregue com grande frequência.




                       Ramiro Batista da Luz   Python gil
O que são metodologias ágeis?

      Metodologia de desenvolvimento.
      Alta participação do(s) cliente(s).
      Adaptação rápida à mudanças.
      Software funcionando entregue com grande frequência.
      Exemplos: Extreme Programming (XP), Scrum, Crystal, Lean,
      Feature Driven Development (FDD), Agile Unified Process (Agile
      UP or AUP), Dynamic Systems Development Method (DSDM).




                       Ramiro Batista da Luz   Python gil
Por que Python Ágil?

      Python é fácil para integrar(Bindings C).




                      Ramiro Batista da Luz   Python gil
Por que Python Ágil?

      Python é fácil para integrar(Bindings C).
      Possui muitas bibliotecas fáceis de aprender.




                      Ramiro Batista da Luz   Python gil
Por que Python Ágil?

      Python é fácil para integrar(Bindings C).
      Possui muitas bibliotecas fáceis de aprender.
      Flexível, se adapta ao ambiente(IronPython, Jython, PyPy).




                      Ramiro Batista da Luz   Python gil
Segurança

     Para mudar, para evoluir.




                     Ramiro Batista da Luz   Python gil
Segurança

     Para mudar, para evoluir.
     Confiabilidade(Testes de integração).




                     Ramiro Batista da Luz   Python gil
Segurança

     Para mudar, para evoluir.
     Confiabilidade(Testes de integração).
     Aceitação de funcionalidades(Testes funcionais).




                     Ramiro Batista da Luz   Python gil
A metodologia XGH - eXtreme Go Horse

     http://va.mu/BcW




                Ramiro Batista da Luz   Python gil
A metodologia XGH - eXtreme Go Horse

     http://va.mu/BcW
       1   Pensou, não é XGH.




                     Ramiro Batista da Luz   Python gil
A metodologia XGH - eXtreme Go Horse

     http://va.mu/BcW
       1   Pensou, não é XGH.
       2   Existem 3 formas de se resolver um problema, a correta, a errada
           e a XGH, que é igual à errada, só que mais rápida.




                      Ramiro Batista da Luz   Python gil
A metodologia XGH - eXtreme Go Horse

     http://va.mu/BcW
       1   Pensou, não é XGH.
       2   Existem 3 formas de se resolver um problema, a correta, a errada
           e a XGH, que é igual à errada, só que mais rápida.
       3   Quanto mais XGH você faz, mais vai precisar fazer.




                      Ramiro Batista da Luz   Python gil
A metodologia XGH - eXtreme Go Horse

     http://va.mu/BcW
       1   Pensou, não é XGH.
       2   Existem 3 formas de se resolver um problema, a correta, a errada
           e a XGH, que é igual à errada, só que mais rápida.
       3   Quanto mais XGH você faz, mais vai precisar fazer.
       4   XGH é totalmente reativo.




                      Ramiro Batista da Luz   Python gil
TDD - Test Driven Development

      http://va.mu/JjxN




                 Ramiro Batista da Luz   Python gil
TDD - Test Driven Development

      http://va.mu/JjxN
         Adicione um teste




                    Ramiro Batista da Luz   Python gil
TDD - Test Driven Development

      http://va.mu/JjxN
         Adicione um teste
         Execute todos os testes e veja se algum deles falha




                    Ramiro Batista da Luz   Python gil
TDD - Test Driven Development

      http://va.mu/JjxN
         Adicione um teste
         Execute todos os testes e veja se algum deles falha
         Escrever código




                    Ramiro Batista da Luz   Python gil
TDD - Test Driven Development

      http://va.mu/JjxN
         Adicione um teste
         Execute todos os testes e veja se algum deles falha
         Escrever código
         Execute os testes automatizados e veja-os executarem com
         sucesso




                    Ramiro Batista da Luz   Python gil
TDD - Test Driven Development

      http://va.mu/JjxN
         Adicione um teste
         Execute todos os testes e veja se algum deles falha
         Escrever código
         Execute os testes automatizados e veja-os executarem com
         sucesso
         Refatorar código




                    Ramiro Batista da Luz   Python gil
TDD - Test Driven Development

      http://va.mu/JjxN
         Adicione um teste
         Execute todos os testes e veja se algum deles falha
         Escrever código
         Execute os testes automatizados e veja-os executarem com
         sucesso
         Refatorar código
         Repita tudo




                    Ramiro Batista da Luz   Python gil
BDD - Behavior Driven Development

      http://va.mu/Jjxa




                 Ramiro Batista da Luz   Python gil
BDD - Behavior Driven Development

      http://va.mu/Jjxa
         Envolver as partes interessadas no processo através de
         Outside-in Development (Desenvolvimento de Fora pra Dentro)




                    Ramiro Batista da Luz   Python gil
BDD - Behavior Driven Development

      http://va.mu/Jjxa
         Envolver as partes interessadas no processo através de
         Outside-in Development (Desenvolvimento de Fora pra Dentro)
         Usar exemplos para descrever o comportamento de uma
         aplicação ou unidades de código




                    Ramiro Batista da Luz   Python gil
BDD - Behavior Driven Development

      http://va.mu/Jjxa
         Envolver as partes interessadas no processo através de
         Outside-in Development (Desenvolvimento de Fora pra Dentro)
         Usar exemplos para descrever o comportamento de uma
         aplicação ou unidades de código
         Automatizar os exemplos para prover um feedback rápido e testes
         de regresso




                    Ramiro Batista da Luz   Python gil
BDD - Behavior Driven Development

      http://va.mu/Jjxa
         Envolver as partes interessadas no processo através de
         Outside-in Development (Desenvolvimento de Fora pra Dentro)
         Usar exemplos para descrever o comportamento de uma
         aplicação ou unidades de código
         Automatizar os exemplos para prover um feedback rápido e testes
         de regresso
         Usar deve (should em inglês) na hora de descrever o
         comportamento de software para ajudar esclarecer
         responsabilidades e permitir que funcionalidades do software
         sejam questionadas




                    Ramiro Batista da Luz   Python gil
BDD - Behavior Driven Development

      http://va.mu/Jjxa
         Envolver as partes interessadas no processo através de
         Outside-in Development (Desenvolvimento de Fora pra Dentro)
         Usar exemplos para descrever o comportamento de uma
         aplicação ou unidades de código
         Automatizar os exemplos para prover um feedback rápido e testes
         de regresso
         Usar deve (should em inglês) na hora de descrever o
         comportamento de software para ajudar esclarecer
         responsabilidades e permitir que funcionalidades do software
         sejam questionadas
         Usar dublês de teste (mocks, stubs, fakes, dummies, spies) para
         auxiliar na colaboração entre módulos e códigos que ainda no
         foram escritos




                    Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py




                    Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
           python-3-patterns-
           idioms/code/PythonDecorators/entry_exit_class.py
           http://va.mu/Jjxq
      Iterators: iteradores.py




                       Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6
      Generators: generators.py




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6
      Generators: generators.py
          http://va.mu/JjyJ




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6
      Generators: generators.py
          http://va.mu/JjyJ
      Compreensão de listas: compreensao_listas.py




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6
      Generators: generators.py
          http://va.mu/JjyJ
      Compreensão de listas: compreensao_listas.py
      Singleton:




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6
      Generators: generators.py
          http://va.mu/JjyJ
      Compreensão de listas: compreensao_listas.py
      Singleton:
          python-3-patterns-idioms/code/Singleton/SingletonPattern.py




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6
      Generators: generators.py
          http://va.mu/JjyJ
      Compreensão de listas: compreensao_listas.py
      Singleton:
          python-3-patterns-idioms/code/Singleton/SingletonPattern.py
      Factory:




                     Ramiro Batista da Luz   Python gil
Padrões de projeto(Design Pattern)

      Decorators: decoradores.py
          python-3-patterns-
          idioms/code/PythonDecorators/entry_exit_class.py
          http://va.mu/Jjxq
      Iterators: iteradores.py
            http://va.mu/Jjx6
      Generators: generators.py
          http://va.mu/JjyJ
      Compreensão de listas: compreensao_listas.py
      Singleton:
          python-3-patterns-idioms/code/Singleton/SingletonPattern.py
      Factory:
          python-3-patterns-
          idioms/code/Factory/shapefact1/ShapeFactory1.py



                     Ramiro Batista da Luz   Python gil
Ferramentas

     PyUnit: http://va.mu/oMf




                Ramiro Batista da Luz   Python gil
Ferramentas

     PyUnit: http://va.mu/oMf
     DocTest: http://va.mu/Jjyb




                Ramiro Batista da Luz   Python gil
Ferramentas

     PyUnit: http://va.mu/oMf
     DocTest: http://va.mu/Jjyb
     Nose+TDaemon:




                 Ramiro Batista da Luz   Python gil
Ferramentas

     PyUnit: http://va.mu/oMf
     DocTest: http://va.mu/Jjyb
     Nose+TDaemon:
         http://va.mu/Jjyh




                Ramiro Batista da Luz   Python gil
Integração Continua(Continuos Integration)

      GetWindmill: http://va.mu/Jjyy




                  Ramiro Batista da Luz   Python gil
Integração Continua(Continuos Integration)

      GetWindmill: http://va.mu/Jjyy
      Martin Fowler, continuos integration: http://va.mu/Jjy2




                    Ramiro Batista da Luz   Python gil
Integração Continua(Continuos Integration)

      GetWindmill: http://va.mu/Jjyy
      Martin Fowler, continuos integration: http://va.mu/Jjy2
      TeamCity: http://va.mu/JjzD




                    Ramiro Batista da Luz   Python gil
Integração Continua(Continuos Integration)

      GetWindmill: http://va.mu/Jjyy
      Martin Fowler, continuos integration: http://va.mu/Jjy2
      TeamCity: http://va.mu/JjzD
      Skink: http://va.mu/Jjzx




                    Ramiro Batista da Luz   Python gil
Integração Continua(Continuos Integration)

      GetWindmill: http://va.mu/Jjyy
      Martin Fowler, continuos integration: http://va.mu/Jjy2
      TeamCity: http://va.mu/JjzD
      Skink: http://va.mu/Jjzx
      Jenkins(Hudson): http://jenkins-ci.org/




                    Ramiro Batista da Luz   Python gil
Demonstração

     Testes Unitários: testes_unitarios.py




                     Ramiro Batista da Luz   Python gil
Demonstração

     Testes Unitários: testes_unitarios.py
     Testes e Documentação(DocTests): doctests.py




                     Ramiro Batista da Luz   Python gil
Demonstração

     Testes Unitários: testes_unitarios.py
     Testes e Documentação(DocTests): doctests.py
     Testes com Django:




                     Ramiro Batista da Luz   Python gil
Demonstração

     Testes Unitários: testes_unitarios.py
     Testes e Documentação(DocTests): doctests.py
     Testes com Django:
          Django sem desculpas: http://va.mu/Jj0L




                     Ramiro Batista da Luz   Python gil
Conclusão

     Mais referências:




                    Ramiro Batista da Luz   Python gil
Conclusão

     Mais referências:
         Osvaldo Santana, TDD com Python: http://va.mu/Jj0f




                    Ramiro Batista da Luz   Python gil
Conclusão

     Mais referências:
         Osvaldo Santana, TDD com Python: http://va.mu/Jj0f
         Rodrigo Alves Vieira, http://va.mu/Jj0s




                    Ramiro Batista da Luz   Python gil
Conclusão

     Mais referências:
         Osvaldo Santana, TDD com Python: http://va.mu/Jj0f
         Rodrigo Alves Vieira, http://va.mu/Jj0s
         Plone app testing: http://va.mu/Jj04




                    Ramiro Batista da Luz   Python gil
Conclusão

     Mais referências:
         Osvaldo Santana, TDD com Python: http://va.mu/Jj0f
         Rodrigo Alves Vieira, http://va.mu/Jj0s
         Plone app testing: http://va.mu/Jj04
         Exemplos de testes com web2py: http://va.mu/Jj1F




                    Ramiro Batista da Luz   Python gil
Conclusão

     Mais referências:
         Osvaldo Santana, TDD com Python: http://va.mu/Jj0f
         Rodrigo Alves Vieira, http://va.mu/Jj0s
         Plone app testing: http://va.mu/Jj04
         Exemplos de testes com web2py: http://va.mu/Jj1F
         Test unitário com web2py: http://va.mu/Jj1T




                    Ramiro Batista da Luz   Python gil
Conclusão

     Mais referências:
         Osvaldo Santana, TDD com Python: http://va.mu/Jj0f
         Rodrigo Alves Vieira, http://va.mu/Jj0s
         Plone app testing: http://va.mu/Jj04
         Exemplos de testes com web2py: http://va.mu/Jj1F
         Test unitário com web2py: http://va.mu/Jj1T
         Test unitário com pylons: http://va.mu/Jj1p




                    Ramiro Batista da Luz   Python gil
Agradecimentos

     Bruce Eckel




                   Ramiro Batista da Luz   Python gil
Agradecimentos

     Bruce Eckel
     Adriano Petrich




                       Ramiro Batista da Luz   Python gil
Agradecimentos

     Bruce Eckel
     Adriano Petrich
     Rodrigo Bernardo Pimentel




                       Ramiro Batista da Luz   Python gil
Agradecimentos

     Bruce Eckel
     Adriano Petrich
     Rodrigo Bernardo Pimentel
     Davi Lima




                       Ramiro Batista da Luz   Python gil
Agradecimentos

     Bruce Eckel
     Adriano Petrich
     Rodrigo Bernardo Pimentel
     Davi Lima
     Angelo Marcondes, Júnior(Ishida), Jean Ferri e comunidade
     Interlegis




                       Ramiro Batista da Luz   Python gil
Contato e perguntas

      e-mail e gtalk: ramiroluz@gmail.com




                     Ramiro Batista da Luz   Python gil
Contato e perguntas

      e-mail e gtalk: ramiroluz@gmail.com
      twitter: @ramiroluz




                      Ramiro Batista da Luz   Python gil
Encerramento

     http://www.python.org.br




               Ramiro Batista da Luz   Python gil
Encerramento

     http://www.python.org.br
     http://associacao.python.org.br




               Ramiro Batista da Luz   Python gil
Encerramento

     http://www.python.org.br
     http://associacao.python.org.br
     http://groups.google.com/group/grupy-pr




               Ramiro Batista da Luz   Python gil

Mais conteúdo relacionado

PDF
Cp2011 python agil-ramiroluz
PDF
Por que Python?
PDF
Extraindo dados públicos na marra com Python
PDF
Python storm grupy_sp_23_04
PDF
Hackeando o Facebook com Python
PDF
Desenvolvimento web ágil com python e web2py
PDF
Python agil
PPTX
Desenvolvimento rápido de aplicações Web com Python e Django
Cp2011 python agil-ramiroluz
Por que Python?
Extraindo dados públicos na marra com Python
Python storm grupy_sp_23_04
Hackeando o Facebook com Python
Desenvolvimento web ágil com python e web2py
Python agil
Desenvolvimento rápido de aplicações Web com Python e Django

Semelhante a python-agil-IVEnGitec (20)

PDF
Sabores do desenvolvimento web com Python
PDF
Por que python? fisl 14 - 2013
PDF
Python - o que, porque, como e quando
PDF
Desenvolvimento de aplicações embarcadas utilizando Python
PPT
O que Python pode fazer e você não sabe
ODP
The zen of python 2010
PDF
Django: um framework web para perfeccionistas com prazo
ZIP
Python e Django na Globo.com
PPTX
O canivete suiço de Python
PDF
Por que escolher Python?
PDF
Por Que Python É Tão Lento?
PDF
O poder do Python/Django
ODP
NãNãNã Nã - Python Refresca até Pensamento
PDF
Python para iniciantes
PPT
Primeiros passos em Python - Tchelinux Uruguaiana 2011
PDF
MNT2014 - Python para Iniciantes - Luciana Mota
PDF
Desenvolvimento web com python e web2py
PPTX
My first app django
PDF
Plone: O CMS da moda? - Consegi 2013
PDF
Programação Python na Iot
Sabores do desenvolvimento web com Python
Por que python? fisl 14 - 2013
Python - o que, porque, como e quando
Desenvolvimento de aplicações embarcadas utilizando Python
O que Python pode fazer e você não sabe
The zen of python 2010
Django: um framework web para perfeccionistas com prazo
Python e Django na Globo.com
O canivete suiço de Python
Por que escolher Python?
Por Que Python É Tão Lento?
O poder do Python/Django
NãNãNã Nã - Python Refresca até Pensamento
Python para iniciantes
Primeiros passos em Python - Tchelinux Uruguaiana 2011
MNT2014 - Python para Iniciantes - Luciana Mota
Desenvolvimento web com python e web2py
My first app django
Plone: O CMS da moda? - Consegi 2013
Programação Python na Iot
Anúncio

Mais de Ramiro Luz (20)

PDF
Institutional Website - the longest project of my life
PDF
Plone Portal, cultural and economic challenges in public organizations
PDF
Portal Modelo - Plone for Parliaments
PDF
Para que serve o Python
PDF
Minerando dados com Python
PDF
Python, por onde começar - Semana Technológica UTFPR 2015.
PDF
Workshop de introdução ao python - TADS 2015
PDF
Não se repita - Django Generic Views - Semana Acadêmica TADS 2015.
PDF
Não se repita - Django Generic Views - FLISOL Curitiba 2015
PDF
Criando testes com Plone
PDF
Python, por onde começar? @FTSL2014
PDF
Flisol 2014 - Python, por onde começar?
PDF
Python 3, patterns and indioms
PDF
Dojo de Programação
PDF
Teaching TDD, the Coding Dojo Style
PDF
Usando Dojos de Programação para o Ensino de TDD
PDF
Usando Dojos de Programação para o Ensino e Disseminação de Práticas Ágeis: r...
PDF
Apresentação resumo de artigo Limiting Factor of TDD adoption
PDF
Testes de Unidade para C++
PDF
Map reduce
Institutional Website - the longest project of my life
Plone Portal, cultural and economic challenges in public organizations
Portal Modelo - Plone for Parliaments
Para que serve o Python
Minerando dados com Python
Python, por onde começar - Semana Technológica UTFPR 2015.
Workshop de introdução ao python - TADS 2015
Não se repita - Django Generic Views - Semana Acadêmica TADS 2015.
Não se repita - Django Generic Views - FLISOL Curitiba 2015
Criando testes com Plone
Python, por onde começar? @FTSL2014
Flisol 2014 - Python, por onde começar?
Python 3, patterns and indioms
Dojo de Programação
Teaching TDD, the Coding Dojo Style
Usando Dojos de Programação para o Ensino de TDD
Usando Dojos de Programação para o Ensino e Disseminação de Práticas Ágeis: r...
Apresentação resumo de artigo Limiting Factor of TDD adoption
Testes de Unidade para C++
Map reduce
Anúncio

Último (19)

PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Apple Pippin Uma breve introdução. - David Glotz
COBITxITIL-Entenda as diferença em uso governança TI
Aula04-Academia Heri- Tecnologia Geral 2025
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Aula 18 - Manipulacao De Arquivos python
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26

python-agil-IVEnGitec

  • 1. Python gil IV Encontro GITEC - 2011 Ramiro Batista da Luz 26 Outubro 2011 Ramiro Batista da Luz Python gil
  • 2. Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz Python gil
  • 3. Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz - ramiroluz@gmail.com Ramiro Batista da Luz Python gil
  • 4. Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz - ramiroluz@gmail.com Twitter: @ramiroluz Ramiro Batista da Luz Python gil
  • 5. Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz - ramiroluz@gmail.com Twitter: @ramiroluz http://www.slideshare.net/ramiroluz/ pythonagilivengitec Ramiro Batista da Luz Python gil
  • 6. Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz - ramiroluz@gmail.com Twitter: @ramiroluz http://www.slideshare.net/ramiroluz/ pythonagilivengitec Códigos exemplo: Ramiro Batista da Luz Python gil
  • 7. Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz - ramiroluz@gmail.com Twitter: @ramiroluz http://www.slideshare.net/ramiroluz/ pythonagilivengitec Códigos exemplo: http://www.ramiroluz.eti.br/python-agil/ Ramiro Batista da Luz Python gil
  • 8. Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz - ramiroluz@gmail.com Twitter: @ramiroluz http://www.slideshare.net/ramiroluz/ pythonagilivengitec Códigos exemplo: http://www.ramiroluz.eti.br/python-agil/ http://www.python.org.br/wiki/PythonAgil Ramiro Batista da Luz Python gil
  • 9. A avestruz e o gato! Veloz X Ágil: Fonte: http://va.mu/JK27 Fonte: http://va.mu/JK3C Ramiro Batista da Luz Python gil
  • 10. O que é agilidade? Capacidade de mudar de direção rapidamente. Ramiro Batista da Luz Python gil
  • 11. O que é agilidade? Capacidade de mudar de direção rapidamente. Habilidade de adaptar-se a mudanças com eficiência. Ramiro Batista da Luz Python gil
  • 12. O que é linguagem de programação? Sequencia de instruções “transformadas” em programas, software aplicativo, sistemas operacionais. Ramiro Batista da Luz Python gil
  • 13. O que é linguagem de programação? Sequencia de instruções “transformadas” em programas, software aplicativo, sistemas operacionais. Algumas linguagens: C, C++, Visual Basic, Smalltalk, Haskell, Lua e Python. Ramiro Batista da Luz Python gil
  • 14. O que é Python? Linguagem de programação dinâmica, orientada a objetos, simples e prática. Ramiro Batista da Luz Python gil
  • 15. O que é Python? Linguagem de programação dinâmica, orientada a objetos, simples e prática. Usada para criar os sistemas do Interlegis. Ramiro Batista da Luz Python gil
  • 16. O que é Python? Linguagem de programação dinâmica, orientada a objetos, simples e prática. Usada para criar os sistemas do Interlegis. Usada desde a infraestrutura de servidores até a web, passando por pesquisas científicas e desenvolvimento de jogos bem como linguagem de extenso. Ramiro Batista da Luz Python gil
  • 17. O que são metodologias ágeis? Metodologia de desenvolvimento. Ramiro Batista da Luz Python gil
  • 18. O que são metodologias ágeis? Metodologia de desenvolvimento. Alta participação do(s) cliente(s). Ramiro Batista da Luz Python gil
  • 19. O que são metodologias ágeis? Metodologia de desenvolvimento. Alta participação do(s) cliente(s). Adaptação rápida à mudanças. Ramiro Batista da Luz Python gil
  • 20. O que são metodologias ágeis? Metodologia de desenvolvimento. Alta participação do(s) cliente(s). Adaptação rápida à mudanças. Software funcionando entregue com grande frequência. Ramiro Batista da Luz Python gil
  • 21. O que são metodologias ágeis? Metodologia de desenvolvimento. Alta participação do(s) cliente(s). Adaptação rápida à mudanças. Software funcionando entregue com grande frequência. Exemplos: Extreme Programming (XP), Scrum, Crystal, Lean, Feature Driven Development (FDD), Agile Unified Process (Agile UP or AUP), Dynamic Systems Development Method (DSDM). Ramiro Batista da Luz Python gil
  • 22. Por que Python Ágil? Python é fácil para integrar(Bindings C). Ramiro Batista da Luz Python gil
  • 23. Por que Python Ágil? Python é fácil para integrar(Bindings C). Possui muitas bibliotecas fáceis de aprender. Ramiro Batista da Luz Python gil
  • 24. Por que Python Ágil? Python é fácil para integrar(Bindings C). Possui muitas bibliotecas fáceis de aprender. Flexível, se adapta ao ambiente(IronPython, Jython, PyPy). Ramiro Batista da Luz Python gil
  • 25. Segurança Para mudar, para evoluir. Ramiro Batista da Luz Python gil
  • 26. Segurança Para mudar, para evoluir. Confiabilidade(Testes de integração). Ramiro Batista da Luz Python gil
  • 27. Segurança Para mudar, para evoluir. Confiabilidade(Testes de integração). Aceitação de funcionalidades(Testes funcionais). Ramiro Batista da Luz Python gil
  • 28. A metodologia XGH - eXtreme Go Horse http://va.mu/BcW Ramiro Batista da Luz Python gil
  • 29. A metodologia XGH - eXtreme Go Horse http://va.mu/BcW 1 Pensou, não é XGH. Ramiro Batista da Luz Python gil
  • 30. A metodologia XGH - eXtreme Go Horse http://va.mu/BcW 1 Pensou, não é XGH. 2 Existem 3 formas de se resolver um problema, a correta, a errada e a XGH, que é igual à errada, só que mais rápida. Ramiro Batista da Luz Python gil
  • 31. A metodologia XGH - eXtreme Go Horse http://va.mu/BcW 1 Pensou, não é XGH. 2 Existem 3 formas de se resolver um problema, a correta, a errada e a XGH, que é igual à errada, só que mais rápida. 3 Quanto mais XGH você faz, mais vai precisar fazer. Ramiro Batista da Luz Python gil
  • 32. A metodologia XGH - eXtreme Go Horse http://va.mu/BcW 1 Pensou, não é XGH. 2 Existem 3 formas de se resolver um problema, a correta, a errada e a XGH, que é igual à errada, só que mais rápida. 3 Quanto mais XGH você faz, mais vai precisar fazer. 4 XGH é totalmente reativo. Ramiro Batista da Luz Python gil
  • 33. TDD - Test Driven Development http://va.mu/JjxN Ramiro Batista da Luz Python gil
  • 34. TDD - Test Driven Development http://va.mu/JjxN Adicione um teste Ramiro Batista da Luz Python gil
  • 35. TDD - Test Driven Development http://va.mu/JjxN Adicione um teste Execute todos os testes e veja se algum deles falha Ramiro Batista da Luz Python gil
  • 36. TDD - Test Driven Development http://va.mu/JjxN Adicione um teste Execute todos os testes e veja se algum deles falha Escrever código Ramiro Batista da Luz Python gil
  • 37. TDD - Test Driven Development http://va.mu/JjxN Adicione um teste Execute todos os testes e veja se algum deles falha Escrever código Execute os testes automatizados e veja-os executarem com sucesso Ramiro Batista da Luz Python gil
  • 38. TDD - Test Driven Development http://va.mu/JjxN Adicione um teste Execute todos os testes e veja se algum deles falha Escrever código Execute os testes automatizados e veja-os executarem com sucesso Refatorar código Ramiro Batista da Luz Python gil
  • 39. TDD - Test Driven Development http://va.mu/JjxN Adicione um teste Execute todos os testes e veja se algum deles falha Escrever código Execute os testes automatizados e veja-os executarem com sucesso Refatorar código Repita tudo Ramiro Batista da Luz Python gil
  • 40. BDD - Behavior Driven Development http://va.mu/Jjxa Ramiro Batista da Luz Python gil
  • 41. BDD - Behavior Driven Development http://va.mu/Jjxa Envolver as partes interessadas no processo através de Outside-in Development (Desenvolvimento de Fora pra Dentro) Ramiro Batista da Luz Python gil
  • 42. BDD - Behavior Driven Development http://va.mu/Jjxa Envolver as partes interessadas no processo através de Outside-in Development (Desenvolvimento de Fora pra Dentro) Usar exemplos para descrever o comportamento de uma aplicação ou unidades de código Ramiro Batista da Luz Python gil
  • 43. BDD - Behavior Driven Development http://va.mu/Jjxa Envolver as partes interessadas no processo através de Outside-in Development (Desenvolvimento de Fora pra Dentro) Usar exemplos para descrever o comportamento de uma aplicação ou unidades de código Automatizar os exemplos para prover um feedback rápido e testes de regresso Ramiro Batista da Luz Python gil
  • 44. BDD - Behavior Driven Development http://va.mu/Jjxa Envolver as partes interessadas no processo através de Outside-in Development (Desenvolvimento de Fora pra Dentro) Usar exemplos para descrever o comportamento de uma aplicação ou unidades de código Automatizar os exemplos para prover um feedback rápido e testes de regresso Usar deve (should em inglês) na hora de descrever o comportamento de software para ajudar esclarecer responsabilidades e permitir que funcionalidades do software sejam questionadas Ramiro Batista da Luz Python gil
  • 45. BDD - Behavior Driven Development http://va.mu/Jjxa Envolver as partes interessadas no processo através de Outside-in Development (Desenvolvimento de Fora pra Dentro) Usar exemplos para descrever o comportamento de uma aplicação ou unidades de código Automatizar os exemplos para prover um feedback rápido e testes de regresso Usar deve (should em inglês) na hora de descrever o comportamento de software para ajudar esclarecer responsabilidades e permitir que funcionalidades do software sejam questionadas Usar dublês de teste (mocks, stubs, fakes, dummies, spies) para auxiliar na colaboração entre módulos e códigos que ainda no foram escritos Ramiro Batista da Luz Python gil
  • 46. Padrões de projeto(Design Pattern) Decorators: decoradores.py Ramiro Batista da Luz Python gil
  • 47. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py Ramiro Batista da Luz Python gil
  • 48. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Ramiro Batista da Luz Python gil
  • 49. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py Ramiro Batista da Luz Python gil
  • 50. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Ramiro Batista da Luz Python gil
  • 51. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Generators: generators.py Ramiro Batista da Luz Python gil
  • 52. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Generators: generators.py http://va.mu/JjyJ Ramiro Batista da Luz Python gil
  • 53. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Generators: generators.py http://va.mu/JjyJ Compreensão de listas: compreensao_listas.py Ramiro Batista da Luz Python gil
  • 54. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Generators: generators.py http://va.mu/JjyJ Compreensão de listas: compreensao_listas.py Singleton: Ramiro Batista da Luz Python gil
  • 55. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Generators: generators.py http://va.mu/JjyJ Compreensão de listas: compreensao_listas.py Singleton: python-3-patterns-idioms/code/Singleton/SingletonPattern.py Ramiro Batista da Luz Python gil
  • 56. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Generators: generators.py http://va.mu/JjyJ Compreensão de listas: compreensao_listas.py Singleton: python-3-patterns-idioms/code/Singleton/SingletonPattern.py Factory: Ramiro Batista da Luz Python gil
  • 57. Padrões de projeto(Design Pattern) Decorators: decoradores.py python-3-patterns- idioms/code/PythonDecorators/entry_exit_class.py http://va.mu/Jjxq Iterators: iteradores.py http://va.mu/Jjx6 Generators: generators.py http://va.mu/JjyJ Compreensão de listas: compreensao_listas.py Singleton: python-3-patterns-idioms/code/Singleton/SingletonPattern.py Factory: python-3-patterns- idioms/code/Factory/shapefact1/ShapeFactory1.py Ramiro Batista da Luz Python gil
  • 58. Ferramentas PyUnit: http://va.mu/oMf Ramiro Batista da Luz Python gil
  • 59. Ferramentas PyUnit: http://va.mu/oMf DocTest: http://va.mu/Jjyb Ramiro Batista da Luz Python gil
  • 60. Ferramentas PyUnit: http://va.mu/oMf DocTest: http://va.mu/Jjyb Nose+TDaemon: Ramiro Batista da Luz Python gil
  • 61. Ferramentas PyUnit: http://va.mu/oMf DocTest: http://va.mu/Jjyb Nose+TDaemon: http://va.mu/Jjyh Ramiro Batista da Luz Python gil
  • 62. Integração Continua(Continuos Integration) GetWindmill: http://va.mu/Jjyy Ramiro Batista da Luz Python gil
  • 63. Integração Continua(Continuos Integration) GetWindmill: http://va.mu/Jjyy Martin Fowler, continuos integration: http://va.mu/Jjy2 Ramiro Batista da Luz Python gil
  • 64. Integração Continua(Continuos Integration) GetWindmill: http://va.mu/Jjyy Martin Fowler, continuos integration: http://va.mu/Jjy2 TeamCity: http://va.mu/JjzD Ramiro Batista da Luz Python gil
  • 65. Integração Continua(Continuos Integration) GetWindmill: http://va.mu/Jjyy Martin Fowler, continuos integration: http://va.mu/Jjy2 TeamCity: http://va.mu/JjzD Skink: http://va.mu/Jjzx Ramiro Batista da Luz Python gil
  • 66. Integração Continua(Continuos Integration) GetWindmill: http://va.mu/Jjyy Martin Fowler, continuos integration: http://va.mu/Jjy2 TeamCity: http://va.mu/JjzD Skink: http://va.mu/Jjzx Jenkins(Hudson): http://jenkins-ci.org/ Ramiro Batista da Luz Python gil
  • 67. Demonstração Testes Unitários: testes_unitarios.py Ramiro Batista da Luz Python gil
  • 68. Demonstração Testes Unitários: testes_unitarios.py Testes e Documentação(DocTests): doctests.py Ramiro Batista da Luz Python gil
  • 69. Demonstração Testes Unitários: testes_unitarios.py Testes e Documentação(DocTests): doctests.py Testes com Django: Ramiro Batista da Luz Python gil
  • 70. Demonstração Testes Unitários: testes_unitarios.py Testes e Documentação(DocTests): doctests.py Testes com Django: Django sem desculpas: http://va.mu/Jj0L Ramiro Batista da Luz Python gil
  • 71. Conclusão Mais referências: Ramiro Batista da Luz Python gil
  • 72. Conclusão Mais referências: Osvaldo Santana, TDD com Python: http://va.mu/Jj0f Ramiro Batista da Luz Python gil
  • 73. Conclusão Mais referências: Osvaldo Santana, TDD com Python: http://va.mu/Jj0f Rodrigo Alves Vieira, http://va.mu/Jj0s Ramiro Batista da Luz Python gil
  • 74. Conclusão Mais referências: Osvaldo Santana, TDD com Python: http://va.mu/Jj0f Rodrigo Alves Vieira, http://va.mu/Jj0s Plone app testing: http://va.mu/Jj04 Ramiro Batista da Luz Python gil
  • 75. Conclusão Mais referências: Osvaldo Santana, TDD com Python: http://va.mu/Jj0f Rodrigo Alves Vieira, http://va.mu/Jj0s Plone app testing: http://va.mu/Jj04 Exemplos de testes com web2py: http://va.mu/Jj1F Ramiro Batista da Luz Python gil
  • 76. Conclusão Mais referências: Osvaldo Santana, TDD com Python: http://va.mu/Jj0f Rodrigo Alves Vieira, http://va.mu/Jj0s Plone app testing: http://va.mu/Jj04 Exemplos de testes com web2py: http://va.mu/Jj1F Test unitário com web2py: http://va.mu/Jj1T Ramiro Batista da Luz Python gil
  • 77. Conclusão Mais referências: Osvaldo Santana, TDD com Python: http://va.mu/Jj0f Rodrigo Alves Vieira, http://va.mu/Jj0s Plone app testing: http://va.mu/Jj04 Exemplos de testes com web2py: http://va.mu/Jj1F Test unitário com web2py: http://va.mu/Jj1T Test unitário com pylons: http://va.mu/Jj1p Ramiro Batista da Luz Python gil
  • 78. Agradecimentos Bruce Eckel Ramiro Batista da Luz Python gil
  • 79. Agradecimentos Bruce Eckel Adriano Petrich Ramiro Batista da Luz Python gil
  • 80. Agradecimentos Bruce Eckel Adriano Petrich Rodrigo Bernardo Pimentel Ramiro Batista da Luz Python gil
  • 81. Agradecimentos Bruce Eckel Adriano Petrich Rodrigo Bernardo Pimentel Davi Lima Ramiro Batista da Luz Python gil
  • 82. Agradecimentos Bruce Eckel Adriano Petrich Rodrigo Bernardo Pimentel Davi Lima Angelo Marcondes, Júnior(Ishida), Jean Ferri e comunidade Interlegis Ramiro Batista da Luz Python gil
  • 83. Contato e perguntas e-mail e gtalk: ramiroluz@gmail.com Ramiro Batista da Luz Python gil
  • 84. Contato e perguntas e-mail e gtalk: ramiroluz@gmail.com twitter: @ramiroluz Ramiro Batista da Luz Python gil
  • 85. Encerramento http://www.python.org.br Ramiro Batista da Luz Python gil
  • 86. Encerramento http://www.python.org.br http://associacao.python.org.br Ramiro Batista da Luz Python gil
  • 87. Encerramento http://www.python.org.br http://associacao.python.org.br http://groups.google.com/group/grupy-pr Ramiro Batista da Luz Python gil