Apresentação
• Python Ágil - Python Brasil[6] - 2010
• Ramiro Batista da Luz - ramiroluz@gmail.com
• Twitter: @ramiroluz
•...
O que é agilidade?
Capacidade de mudar de direção rapidamente.
Habilidade de adaptar-se a mudanças com eficiência.
Python ...
O que é desenvolvimento ágil?
Metodologia de desenvolvimento.
Alta participação do(s) cliente(s).
Adaptação rápida à mudan...
Por que Python ágil?
Fácil de adaptar.
Muitas bibliotecas fáceis de aprender.
Fácil de entender e aprender.
Python Ágil - ...
XGH - eXtreme Go Horse
http://gohorseprocess.wordpress.com/extreme-go-horse-xgh/
1. Pensou, não é XGH.
2. Existem 3 formas...
TDD - Test Driven Development(1)
http://pt.wikipedia.org/wiki/Test_Driven_Development
• Adicione um teste
• Execute todos ...
TDD - Test Driven Development(2)
• Execute os testes automatizados e veja-os executarem com sucesso
• Refatorar código
• R...
BDD - Behavior Driven Development(1)
http://pt.wikipedia.org/wiki/Behavior_Driven_Development
• Envolver as partes interes...
BDD - Behavior Driven Development(2)
• Usar deve (should em inglês) na hora de descrever o
comportamento de software para ...
Padrões de projeto(Design Pattern)(1)
Decorators: decoradores.py
python-3-patterns-idioms/code/PythonDecorators/entry_exit...
Padrões de projeto(Design Pattern)(2)
Generators: generators.py
http://docs.python.org/tutorial/classes.html#generators
Co...
Ferramentas
PyUnit: http://docs.python.org/library/unittest.html
DocTest: http://docs.python.org/library/doctest.html
Nose...
Integração Continua(Continuos
Integration)
http://www.getwindmill.com/
http://martinfowler.com/articles/continuousIntegrat...
Demonstração
Testes Unitários: testes_unitarios.py
Testes e Documentação(DocTests): doctests.py
Testes com Django:
http://...
Conclusão
Outros exemplos:
Plone: http://plone.org/documentation/kb/richdocument/unit-testing
web2py:
http://www.web2py.co...
Agradecimentos
Bruce Eckel
Adriano Petrich
Rodrigo Bernardo Pimentel
Python Ágil - PythonBrasil[6] - 2010.
© Ramiro Batist...
Contato e perguntas
e-mail e gtalk: ramiroluz@gmail.com
twitter: @ramiroluz
Python Ágil - PythonBrasil[6] - 2010.
© Ramiro...
Encerramento
http://www.python.org.br
http://associacao.python.org.br
http://groups.google.com/group/grupy-pr
Python Ágil ...
Upcoming SlideShare
Loading in …5
×

Python agil

1,181 views
1,120 views

Published on

Apresentação de bibliotecas usadas para desenvolvimento dirigido por testes com Python.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,181
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Python agil

  1. 1. Apresentação • Python Ágil - Python Brasil[6] - 2010 • Ramiro Batista da Luz - ramiroluz@gmail.com • Twitter: @ramiroluz • http://www.slideshare.net/ramiroluz/python-agil • Códigos exemplo: http://www.ramiroluz.eti.br/python-agil/ e http://www.python.org.br/wiki/PythonAgil Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  2. 2. O que é agilidade? Capacidade de mudar de direção rapidamente. Habilidade de adaptar-se a mudanças com eficiência. Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  3. 3. O que é desenvolvimento ágil? Metodologia de desenvolvimento. Alta participação do(s) cliente(s). Adaptação rápida à mudanças. Software funcional entregue com grande freqüência. Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  4. 4. Por que Python ágil? Fácil de adaptar. Muitas bibliotecas fáceis de aprender. Fácil de entender e aprender. Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  5. 5. XGH - eXtreme Go Horse http://gohorseprocess.wordpress.com/extreme-go-horse-xgh/ 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 precisará fazer. 4. XGH é totalmente reativo. Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  6. 6. TDD - Test Driven Development(1) http://pt.wikipedia.org/wiki/Test_Driven_Development • Adicione um teste • Execute todos os testes e veja se algum deles falha • Escrever código Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  7. 7. TDD - Test Driven Development(2) • Execute os testes automatizados e veja-os executarem com sucesso • Refatorar código • Repita tudo Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  8. 8. BDD - Behavior Driven Development(1) http://pt.wikipedia.org/wiki/Behavior_Driven_Development • 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 regressão Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  9. 9. BDD - Behavior Driven Development(2) • 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 não foram escritos Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  10. 10. Padrões de projeto(Design Pattern)(1) Decorators: decoradores.py python-3-patterns-idioms/code/PythonDecorators/entry_exit_class.py http://en.wikipedia.org/wiki/Python_syntax_and_semantics#Decorators Iterators: iteradores.py http://docs.python.org/tutorial/classes.html#iterators Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  11. 11. Padrões de projeto(Design Pattern)(2) Generators: generators.py http://docs.python.org/tutorial/classes.html#generators 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 Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  12. 12. Ferramentas PyUnit: http://docs.python.org/library/unittest.html DocTest: http://docs.python.org/library/doctest.html Nose+TDaemon: http://isnomore.net/2010/08/01/automated-python-testing-nose-and-tdaemon/ Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  13. 13. Integração Continua(Continuos Integration) http://www.getwindmill.com/ http://martinfowler.com/articles/continuousIntegration.html http://www.jetbrains.com/teamcity/ https://github.com/heynemann/skink http://hudson-ci.org/ Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  14. 14. Demonstração Testes Unitários: testes_unitarios.py Testes e Documentação(DocTests): doctests.py Testes com Django: http://www.slideshare.net/fractalk/tdd-em-django-sem-desculpas Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  15. 15. Conclusão Outros exemplos: Plone: http://plone.org/documentation/kb/richdocument/unit-testing web2py: http://www.web2py.com/examples/default/examples#testing_examples http://web2py.com/AlterEgo/default/show/260 pylons: http://wiki.pylonshq.com/display/pylonsdocs/Unit+Testing Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  16. 16. Agradecimentos Bruce Eckel Adriano Petrich Rodrigo Bernardo Pimentel Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  17. 17. Contato e perguntas e-mail e gtalk: ramiroluz@gmail.com twitter: @ramiroluz Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.
  18. 18. Encerramento http://www.python.org.br http://associacao.python.org.br http://groups.google.com/group/grupy-pr Python Ágil - PythonBrasil[6] - 2010. © Ramiro Batista da Luz, 2010.

×