Python agil

1.260 visualizações

Publicada em

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

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.260
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
10
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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.

×