Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Python agil

1,279 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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.

×