Test Driven Development - Trabalhe tranquilo e maximize sua produtividade

1.230 visualizações

Publicada em

0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.230
No SlideShare
0
A partir de incorporações
0
Número de incorporações
22
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Test Driven Development - Trabalhe tranquilo e maximize sua produtividade

  1. 1. globo Test Driven Development .com Trabalhe tranquilo e maximize sua produtividadeFriday, December 9, 2011
  2. 2. Sobre Mim ‣ Flávio Ribeiro ‣ Graduado em Engenharia Elétrica pelo IFPB ‣ Engenheiro de Software na Globo.com @flavioribeiroFriday, December 9, 2011
  3. 3. Sobre a Palestra ‣ Vamos falar de ...Friday, December 9, 2011
  4. 4. Problemas ReaisFriday, December 9, 2011
  5. 5. Entregas Cíclicas continous deliveryFriday, December 9, 2011
  6. 6. Modelagem designFriday, December 9, 2011
  7. 7. Profissionalismo?Friday, December 9, 2011
  8. 8. Test Driven DevelopmentFriday, December 9, 2011
  9. 9. Friday, December 9, 2011
  10. 10. Friday, December 9, 2011
  11. 11. Antes de Comecar... ‣ TDD não é ensinado, TDD é praticado! ‣ Na fase de treinamento é importante seguir as regras. ‣ Baby Steps.Friday, December 9, 2011
  12. 12. Modelagem/TestedesignFriday, December 9, 2011
  13. 13. Modelagem / Teste ‣ Seja cliente do código que irá escrever ‣ O que eu vou entregar e o que eu quero de volta? ‣ Escreva um teste com o design concebidoFriday, December 9, 2011
  14. 14. Escreva o códigoFriday, December 9, 2011
  15. 15. Escreva o código ‣ Gaste um tempo pensando no seu problema, planeje até ter uma solução limpa e elegante. ‣ Mantenha o foco. O target é fazer o teste passar. ‣ Faça o teste passar.Friday, December 9, 2011
  16. 16. RefatorarFriday, December 9, 2011
  17. 17. Refatorar ‣ Use nomes que façam sentido. ‣ Aplique otimizações. ‣ Pair Programming ‣ Honre seu nome, o git blame pode te entregar. ‣ “Qualquer um escreve código que computadores entendem. Bons programadores escrevem código que humanos podem entender.” - Martin FowlerFriday, December 9, 2011
  18. 18. Quando refatorar? ‣ Código duplicado ‣ Métodos longos ‣ Classes grandes (o famoso sacolão) ‣ Muitos parâmetrosFriday, December 9, 2011
  19. 19. Quando refatorar? .. do Zen of Python (Tim Peters) ‣ Beautiful is better than ugly. ‣ Simple is better than complex. ‣ Sparse is better than dense. ‣ Readability counts.Friday, December 9, 2011
  20. 20. “Talk is cheap.. show me the code.”Friday, December 9, 2011
  21. 21. Friday, December 9, 2011
  22. 22. Placar de Boliche ‣ 10 “frames”, 2 arremessos cada ‣ 10 pinos ‣ Strike: Se o primeiro arremesso derrubar os 10 pinos ‣ Os dois próximos arremessos serão “dobrados” ‣ Spare: Derrubar todos os pinos com os 2 arremessos ‣ O próximo arremesso será “dobrado”Friday, December 9, 2011
  23. 23. Legal! Mas... pra que serve mesmo?Friday, December 9, 2011
  24. 24. O Problema Bom Barato RápidoFriday, December 9, 2011
  25. 25. TDD ajuda a equalizarFriday, December 9, 2011
  26. 26. TDD ajuda a equalizar ‣ Testar é mais barato que debugar. ‣ (Tempo = Dinheiro) ‣ Código é documentado pelos testes. ‣ Menos bugs em produção. ‣ Software mais consistente. Mude o que quiser com segurança. Trabalhe tranquilo. ‣ Entregas cíclicas.Friday, December 9, 2011
  27. 27. Entregas CíclicasFriday, December 9, 2011
  28. 28. Entregas Cíclicas continuous delivery ‣ Feedback imediado. ‣ Pequenas entregas. ‣ Alertas sobre build. (verde/vermelho) ‣ Alinhamento de expectativas. ‣ Manutenção do escopo.Friday, December 9, 2011
  29. 29. Ops, quebraram o build!Friday, December 9, 2011
  30. 30. Ainda temos tempo? ‣ Mocks, stubs e fakes ‣ Outros testes ‣ Teste de IntregraçãoFriday, December 9, 2011
  31. 31. Perguntas? @flavioribeiroFriday, December 9, 2011
  32. 32. Obrigado! ;) @flavioribeiroFriday, December 9, 2011
  33. 33. Links http://programmers.stackexchange.com/questions/93302/spending-too-much-time-debugging http://www.slideshare.net/Skud/test-driven-development-tutorial http://www.ime.usp.br/~pf/algoritmos/aulas/footnotes/epigraphs.html http://tonygodoy.blog.com/files/2010/12/macaco-pensativo.jpg http://python.org http://www.slideshare.net/redigon/refactoring-1658371 http://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agora http://www.slideshare.net/osantana/tdd-com-python http://www.klauslaube.com.br/wp-content/uploads/2011/01/TestDrivenGameDevelopment.png http://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agora http://www.flickr.com/photos/kalavinka/4617897952/sizes/o/in/photostream/ http://disciplinas.dcc.ufba.br/pub/MATB14/TDDComRuby/tdd-cycle.jpg http://designcipta.com/wp-content/uploads/2011/02/architect_2.jpg http://cdn02.cdnwp.celebuzz.com/wp-content/uploads/legacy/celebuzz/default/msg-127981724976-3.jpg http://markmail.org/message/jmvo3hedwp3zrcoo http://se.inf.ethz.ch/old/teaching/2010-S/0276/slides/pletikosa.pdf http://www.agile-itea.org/public/deliverables/ITEA-AGILE-D2.7_v1.0.pdf http://stackoverflow.com/questions/787172/what-is-a-good-sample-class-to-demonstrate-tdd http://www.objectmentor.com/resources/articles/xpepisode.htm http://galeri.uludagsozluk.com/49/linus-torvalds_64902.jpg http://3.bp.blogspot.com/_Hep8dtfRKAg/TNgEf6kvmzI/AAAAAAAAABk/BTo3MqMFl1U/s1600/ bowling.jpg http://pt.wikipedia.org/wiki/BolicheFriday, December 9, 2011

×