87
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 · Python Ágil - IV Encontro GITEC - 2011.© Ramiro Batista da Luz, 2011. Python Ágil - IV Encontro do GITEC - 2011 Ramiro Batista da Luz -

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

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

Python gilIV Encontro GITEC - 2011

Ramiro Batista da Luz

26 Outubro 2011

Ramiro Batista da Luz Python gil

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

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

Python Ágil - IV Encontro do GITEC - 2011

Ramiro Batista da Luz - [email protected]

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

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

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

Python Ágil - IV Encontro do GITEC - 2011

Ramiro Batista da Luz - [email protected]

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

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

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

Python Ágil - IV Encontro do GITEC - 2011

Ramiro Batista da Luz - [email protected]

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

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

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

Python Ágil - IV Encontro do GITEC - 2011

Ramiro Batista da Luz - [email protected]

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

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

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

Python Ágil - IV Encontro do GITEC - 2011

Ramiro Batista da Luz - [email protected]

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

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

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

Python Ágil - IV Encontro do GITEC - 2011

Ramiro Batista da Luz - [email protected]

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

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

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

Python Ágil - IV Encontro do GITEC - 2011

Ramiro Batista da Luz - [email protected]

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

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

A avestruz e o gato!

Veloz X Ágil:

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

Ramiro Batista da Luz Python gil

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

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

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

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

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

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

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

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

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

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, passandopor pesquisas científicas e desenvolvimento de jogos bem comolinguagem de extenso.

Ramiro Batista da Luz Python gil

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

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, passandopor pesquisas científicas e desenvolvimento de jogos bem comolinguagem de extenso.

Ramiro Batista da Luz Python gil

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

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, passandopor pesquisas científicas e desenvolvimento de jogos bem comolinguagem de extenso.

Ramiro Batista da Luz Python gil

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

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 (AgileUP or AUP), Dynamic Systems Development Method (DSDM).

Ramiro Batista da Luz Python gil

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

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 (AgileUP or AUP), Dynamic Systems Development Method (DSDM).

Ramiro Batista da Luz Python gil

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

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 (AgileUP or AUP), Dynamic Systems Development Method (DSDM).

Ramiro Batista da Luz Python gil

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

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 (AgileUP or AUP), Dynamic Systems Development Method (DSDM).

Ramiro Batista da Luz Python gil

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

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 (AgileUP or AUP), Dynamic Systems Development Method (DSDM).

Ramiro Batista da Luz Python gil

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

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

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

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

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

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

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

Segurança

Para mudar, para evoluir.

Confiabilidade(Testes de integração).

Aceitação de funcionalidades(Testes funcionais).

Ramiro Batista da Luz Python gil

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

Segurança

Para mudar, para evoluir.

Confiabilidade(Testes de integração).

Aceitação de funcionalidades(Testes funcionais).

Ramiro Batista da Luz Python gil

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

Segurança

Para mudar, para evoluir.

Confiabilidade(Testes de integração).

Aceitação de funcionalidades(Testes funcionais).

Ramiro Batista da Luz Python gil

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

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

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

A metodologia XGH - eXtreme Go Horse

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

2 Existem 3 formas de se resolver um problema, a correta, a erradae 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

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

A metodologia XGH - eXtreme Go Horse

http://va.mu/BcW1 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

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

A metodologia XGH - eXtreme Go Horse

http://va.mu/BcW1 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

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

A metodologia XGH - eXtreme Go Horse

http://va.mu/BcW1 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

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

TDD - Test Driven Development

http://va.mu/JjxN

Adicione um testeExecute todos os testes e veja se algum deles falhaEscrever códigoExecute os testes automatizados e veja-os executarem comsucessoRefatorar códigoRepita tudo

Ramiro Batista da Luz Python gil

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

TDD - Test Driven Development

http://va.mu/JjxNAdicione um teste

Execute todos os testes e veja se algum deles falhaEscrever códigoExecute os testes automatizados e veja-os executarem comsucessoRefatorar códigoRepita tudo

Ramiro Batista da Luz Python gil

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

TDD - Test Driven Development

http://va.mu/JjxNAdicione um testeExecute todos os testes e veja se algum deles falha

Escrever códigoExecute os testes automatizados e veja-os executarem comsucessoRefatorar códigoRepita tudo

Ramiro Batista da Luz Python gil

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

TDD - Test Driven Development

http://va.mu/JjxNAdicione um testeExecute todos os testes e veja se algum deles falhaEscrever código

Execute os testes automatizados e veja-os executarem comsucessoRefatorar códigoRepita tudo

Ramiro Batista da Luz Python gil

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

TDD - Test Driven Development

http://va.mu/JjxNAdicione um testeExecute todos os testes e veja se algum deles falhaEscrever códigoExecute os testes automatizados e veja-os executarem comsucesso

Refatorar códigoRepita tudo

Ramiro Batista da Luz Python gil

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

TDD - Test Driven Development

http://va.mu/JjxNAdicione um testeExecute todos os testes e veja se algum deles falhaEscrever códigoExecute os testes automatizados e veja-os executarem comsucessoRefatorar código

Repita tudo

Ramiro Batista da Luz Python gil

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

TDD - Test Driven Development

http://va.mu/JjxNAdicione um testeExecute todos os testes e veja se algum deles falhaEscrever códigoExecute os testes automatizados e veja-os executarem comsucessoRefatorar códigoRepita tudo

Ramiro Batista da Luz Python gil

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

BDD - Behavior Driven Development

http://va.mu/Jjxa

Envolver as partes interessadas no processo através deOutside-in Development (Desenvolvimento de Fora pra Dentro)Usar exemplos para descrever o comportamento de umaaplicação ou unidades de códigoAutomatizar os exemplos para prover um feedback rápido e testesde regressoUsar deve (should em inglês) na hora de descrever ocomportamento de software para ajudar esclarecerresponsabilidades e permitir que funcionalidades do softwaresejam questionadasUsar dublês de teste (mocks, stubs, fakes, dummies, spies) paraauxiliar na colaboração entre módulos e códigos que ainda noforam escritos

Ramiro Batista da Luz Python gil

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

BDD - Behavior Driven Development

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

Usar exemplos para descrever o comportamento de umaaplicação ou unidades de códigoAutomatizar os exemplos para prover um feedback rápido e testesde regressoUsar deve (should em inglês) na hora de descrever ocomportamento de software para ajudar esclarecerresponsabilidades e permitir que funcionalidades do softwaresejam questionadasUsar dublês de teste (mocks, stubs, fakes, dummies, spies) paraauxiliar na colaboração entre módulos e códigos que ainda noforam escritos

Ramiro Batista da Luz Python gil

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

BDD - Behavior Driven Development

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

Automatizar os exemplos para prover um feedback rápido e testesde regressoUsar deve (should em inglês) na hora de descrever ocomportamento de software para ajudar esclarecerresponsabilidades e permitir que funcionalidades do softwaresejam questionadasUsar dublês de teste (mocks, stubs, fakes, dummies, spies) paraauxiliar na colaboração entre módulos e códigos que ainda noforam escritos

Ramiro Batista da Luz Python gil

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

BDD - Behavior Driven Development

http://va.mu/JjxaEnvolver as partes interessadas no processo através deOutside-in Development (Desenvolvimento de Fora pra Dentro)Usar exemplos para descrever o comportamento de umaaplicação ou unidades de códigoAutomatizar os exemplos para prover um feedback rápido e testesde regresso

Usar deve (should em inglês) na hora de descrever ocomportamento de software para ajudar esclarecerresponsabilidades e permitir que funcionalidades do softwaresejam questionadasUsar dublês de teste (mocks, stubs, fakes, dummies, spies) paraauxiliar na colaboração entre módulos e códigos que ainda noforam escritos

Ramiro Batista da Luz Python gil

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

BDD - Behavior Driven Development

http://va.mu/JjxaEnvolver as partes interessadas no processo através deOutside-in Development (Desenvolvimento de Fora pra Dentro)Usar exemplos para descrever o comportamento de umaaplicação ou unidades de códigoAutomatizar os exemplos para prover um feedback rápido e testesde regressoUsar deve (should em inglês) na hora de descrever ocomportamento de software para ajudar esclarecerresponsabilidades e permitir que funcionalidades do softwaresejam questionadas

Usar dublês de teste (mocks, stubs, fakes, dummies, spies) paraauxiliar na colaboração entre módulos e códigos que ainda noforam escritos

Ramiro Batista da Luz Python gil

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

BDD - Behavior Driven Development

http://va.mu/JjxaEnvolver as partes interessadas no processo através deOutside-in Development (Desenvolvimento de Fora pra Dentro)Usar exemplos para descrever o comportamento de umaaplicação ou unidades de códigoAutomatizar os exemplos para prover um feedback rápido e testesde regressoUsar deve (should em inglês) na hora de descrever ocomportamento de software para ajudar esclarecerresponsabilidades e permitir que funcionalidades do softwaresejam questionadasUsar dublês de teste (mocks, stubs, fakes, dummies, spies) paraauxiliar na colaboração entre módulos e códigos que ainda noforam escritos

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.py

python-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.py

http://va.mu/Jjx6

Generators: generators.py

http://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-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.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.py

http://va.mu/Jjx6

Generators: generators.py

http://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.py

http://va.mu/Jjx6

Generators: generators.py

http://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.py

http://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.py

http://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.pyhttp://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.pyhttp://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

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.pyhttp://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.pyhttp://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.pyhttp://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:

python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Padrões de projeto(Design Pattern)

Decorators: decoradores.pypython-3-patterns-idioms/code/PythonDecorators/entry_exit_class.pyhttp://va.mu/Jjxq

Iterators: iteradores.pyhttp://va.mu/Jjx6

Generators: generators.pyhttp://va.mu/JjyJ

Compreensão de listas: compreensao_listas.pySingleton:

python-3-patterns-idioms/code/Singleton/SingletonPattern.py

Factory:python-3-patterns-idioms/code/Factory/shapefact1/ShapeFactory1.py

Ramiro Batista da Luz Python gil

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

Ferramentas

PyUnit: http://va.mu/oMf

DocTest: http://va.mu/JjybNose+TDaemon:

http://va.mu/Jjyh

Ramiro Batista da Luz Python gil

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

Ferramentas

PyUnit: http://va.mu/oMf

DocTest: http://va.mu/Jjyb

Nose+TDaemon:

http://va.mu/Jjyh

Ramiro Batista da Luz Python gil

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

Ferramentas

PyUnit: http://va.mu/oMf

DocTest: http://va.mu/JjybNose+TDaemon:

http://va.mu/Jjyh

Ramiro Batista da Luz Python gil

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

Ferramentas

PyUnit: http://va.mu/oMf

DocTest: http://va.mu/JjybNose+TDaemon:

http://va.mu/Jjyh

Ramiro Batista da Luz Python gil

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

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

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

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

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

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

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

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

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

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

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

Demonstração

Testes Unitários: testes_unitarios.py

Testes e Documentação(DocTests): doctests.pyTestes com Django:

Django sem desculpas: http://va.mu/Jj0L

Ramiro Batista da Luz Python gil

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

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

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

Demonstração

Testes Unitários: testes_unitarios.py

Testes e Documentação(DocTests): doctests.pyTestes com Django:

Django sem desculpas: http://va.mu/Jj0L

Ramiro Batista da Luz Python gil

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

Demonstração

Testes Unitários: testes_unitarios.py

Testes e Documentação(DocTests): doctests.pyTestes com Django:

Django sem desculpas: http://va.mu/Jj0L

Ramiro Batista da Luz Python gil

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

Conclusão

Mais referências:

Osvaldo Santana, TDD com Python: http://va.mu/Jj0fRodrigo Alves Vieira, http://va.mu/Jj0sPlone app testing: http://va.mu/Jj04Exemplos de testes com web2py: http://va.mu/Jj1FTest unitário com web2py: http://va.mu/Jj1TTest unitário com pylons: http://va.mu/Jj1p

Ramiro Batista da Luz Python gil

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

Conclusão

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

Rodrigo Alves Vieira, http://va.mu/Jj0sPlone app testing: http://va.mu/Jj04Exemplos de testes com web2py: http://va.mu/Jj1FTest unitário com web2py: http://va.mu/Jj1TTest unitário com pylons: http://va.mu/Jj1p

Ramiro Batista da Luz Python gil

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

Conclusão

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

Plone app testing: http://va.mu/Jj04Exemplos de testes com web2py: http://va.mu/Jj1FTest unitário com web2py: http://va.mu/Jj1TTest unitário com pylons: http://va.mu/Jj1p

Ramiro Batista da Luz Python gil

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

Conclusão

Mais referências:Osvaldo Santana, TDD com Python: http://va.mu/Jj0fRodrigo Alves Vieira, http://va.mu/Jj0sPlone app testing: http://va.mu/Jj04

Exemplos de testes com web2py: http://va.mu/Jj1FTest unitário com web2py: http://va.mu/Jj1TTest unitário com pylons: http://va.mu/Jj1p

Ramiro Batista da Luz Python gil

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

Conclusão

Mais referências:Osvaldo Santana, TDD com Python: http://va.mu/Jj0fRodrigo Alves Vieira, http://va.mu/Jj0sPlone app testing: http://va.mu/Jj04Exemplos de testes com web2py: http://va.mu/Jj1F

Test unitário com web2py: http://va.mu/Jj1TTest unitário com pylons: http://va.mu/Jj1p

Ramiro Batista da Luz Python gil

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

Conclusão

Mais referências:Osvaldo Santana, TDD com Python: http://va.mu/Jj0fRodrigo Alves Vieira, http://va.mu/Jj0sPlone app testing: http://va.mu/Jj04Exemplos de testes com web2py: http://va.mu/Jj1FTest unitário com web2py: http://va.mu/Jj1T

Test unitário com pylons: http://va.mu/Jj1p

Ramiro Batista da Luz Python gil

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

Conclusão

Mais referências:Osvaldo Santana, TDD com Python: http://va.mu/Jj0fRodrigo Alves Vieira, http://va.mu/Jj0sPlone app testing: http://va.mu/Jj04Exemplos de testes com web2py: http://va.mu/Jj1FTest unitário com web2py: http://va.mu/Jj1TTest unitário com pylons: http://va.mu/Jj1p

Ramiro Batista da Luz Python gil

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

Agradecimentos

Bruce Eckel

Adriano Petrich

Rodrigo Bernardo Pimentel

Davi Lima

Angelo Marcondes, Júnior(Ishida), Jean Ferri e comunidadeInterlegis

Ramiro Batista da Luz Python gil

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

Agradecimentos

Bruce Eckel

Adriano Petrich

Rodrigo Bernardo Pimentel

Davi Lima

Angelo Marcondes, Júnior(Ishida), Jean Ferri e comunidadeInterlegis

Ramiro Batista da Luz Python gil

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

Agradecimentos

Bruce Eckel

Adriano Petrich

Rodrigo Bernardo Pimentel

Davi Lima

Angelo Marcondes, Júnior(Ishida), Jean Ferri e comunidadeInterlegis

Ramiro Batista da Luz Python gil

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

Agradecimentos

Bruce Eckel

Adriano Petrich

Rodrigo Bernardo Pimentel

Davi Lima

Angelo Marcondes, Júnior(Ishida), Jean Ferri e comunidadeInterlegis

Ramiro Batista da Luz Python gil

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

Agradecimentos

Bruce Eckel

Adriano Petrich

Rodrigo Bernardo Pimentel

Davi Lima

Angelo Marcondes, Júnior(Ishida), Jean Ferri e comunidadeInterlegis

Ramiro Batista da Luz Python gil

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

Contato e perguntas

e-mail e gtalk: [email protected]

twitter: @ramiroluz

Ramiro Batista da Luz Python gil

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

Contato e perguntas

e-mail e gtalk: [email protected]

twitter: @ramiroluz

Ramiro Batista da Luz Python gil

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

Encerramento

http://www.python.org.br

http://associacao.python.org.br

http://groups.google.com/group/grupy-pr

Ramiro Batista da Luz Python gil

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

Encerramento

http://www.python.org.br

http://associacao.python.org.br

http://groups.google.com/group/grupy-pr

Ramiro Batista da Luz Python gil

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

Encerramento

http://www.python.org.br

http://associacao.python.org.br

http://groups.google.com/group/grupy-pr

Ramiro Batista da Luz Python gil