Cp2011 python agil-ramiroluz

1,123 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Cp2011 python agil-ramiroluz

  1. 1. Python Ágil - Campus Party - 2011.Apresentação • Python Ágil - Campus Party - 2011 • 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 © Ramiro Batista da Luz, 2010.
  2. 2. Python Ágil - Campus Party - 2011.O que é agilidade? Capacidade de mudar de direção rapidamente. Habilidade de adaptar-se a mudanças com eficiência. © Ramiro Batista da Luz, 2010.
  3. 3. Python Ágil - Campus Party - 2011.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. © Ramiro Batista da Luz, 2010.
  4. 4. Python Ágil - Campus Party - 2011.Por que Python ágil? Fácil de adaptar. Muitas bibliotecas fáceis de aprender. Fácil de entender e aprender. © Ramiro Batista da Luz, 2010.
  5. 5. Python Ágil - Campus Party - 2011.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. © Ramiro Batista da Luz, 2010.
  6. 6. Python Ágil - Campus Party - 2011.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 © Ramiro Batista da Luz, 2010.
  7. 7. Python Ágil - Campus Party - 2011.TDD - Test Driven Development(2) • Execute os testes automatizados e veja-os executarem com sucesso • Refatorar código • Repita tudo © Ramiro Batista da Luz, 2010.
  8. 8. Python Ágil - Campus Party - 2011.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 © Ramiro Batista da Luz, 2010.
  9. 9. Python Ágil - Campus Party - 2011.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 © Ramiro Batista da Luz, 2010.
  10. 10. Python Ágil - Campus Party - 2011.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 © Ramiro Batista da Luz, 2010.
  11. 11. Python Ágil - Campus Party - 2011.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 © Ramiro Batista da Luz, 2010.
  12. 12. Python Ágil - Campus Party - 2011.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/ © Ramiro Batista da Luz, 2010.
  13. 13. Python Ágil - Campus Party - 2011.Integração Continua(ContinuosIntegration) http://www.getwindmill.com/ http://martinfowler.com/articles/continuousIntegration.html http://www.jetbrains.com/teamcity/ https://github.com/heynemann/skink http://hudson-ci.org/ © Ramiro Batista da Luz, 2010.
  14. 14. Python Ágil - Campus Party - 2011.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 © Ramiro Batista da Luz, 2010.
  15. 15. Python Ágil - Campus Party - 2011.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 © Ramiro Batista da Luz, 2010.
  16. 16. Python Ágil - Campus Party - 2011.Agradecimentos Bruce Eckel Adriano Petrich Rodrigo Bernardo Pimentel © Ramiro Batista da Luz, 2010.
  17. 17. Python Ágil - Campus Party - 2011.Contato e perguntas e-mail e gtalk: ramiroluz@gmail.com twitter: @ramiroluz © Ramiro Batista da Luz, 2010.
  18. 18. Python Ágil - Campus Party - 2011.Encerramento http://www.python.org.br http://associacao.python.org.br http://groups.google.com/group/grupy-pr © Ramiro Batista da Luz, 2010.

×