Upload
flavio-ribeiro
View
805
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
globo.com Test Driven DevelopmentTrabalhe tranquilo e maximize sua produtividade
Friday, December 9, 2011
Sobre Mim‣ Flávio Ribeiro
‣ Graduado em Engenharia Elétrica pelo IFPB
‣ Engenheiro de Software na Globo.com
@flavioribeiro
Friday, December 9, 2011
Sobre a Palestra‣ Vamos falar de ...
Friday, December 9, 2011
Problemas ReaisFriday, December 9, 2011
Entregas Cíclicascontinous delivery
Friday, December 9, 2011
Modelagemdesign
Friday, December 9, 2011
Profissionalismo?Friday, December 9, 2011
Test Driven Development
Friday, December 9, 2011
Friday, December 9, 2011
Friday, December 9, 2011
Antes de Comecar...‣ TDD não é ensinado, TDD é praticado!
‣ Na fase de treinamento é importante seguir as regras.
‣ Baby Steps.
Friday, December 9, 2011
Modelagem/Testedesign
Friday, December 9, 2011
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 concebido
Friday, December 9, 2011
Escreva o código
Friday, December 9, 2011
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
Refatorar
Friday, December 9, 2011
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 Fowler
Friday, December 9, 2011
Quando refatorar?‣ Código duplicado
‣ Métodos longos
‣ Classes grandes (o famoso sacolão)
‣ Muitos parâmetros
Friday, December 9, 2011
Quando refatorar?‣ Beautiful is better than ugly.
‣ Simple is better than complex.
‣ Sparse is better than dense.
‣ Readability counts.
.. do Zen of Python (Tim Peters)
Friday, December 9, 2011
“Talk is cheap.. show me the code.”
Friday, December 9, 2011
Friday, December 9, 2011
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
Legal! Mas... pra que serve mesmo? Friday, December 9, 2011
Bom
RápidoBarato
O Problema
Friday, December 9, 2011
TDD ajuda a equalizar
Friday, December 9, 2011
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
Entregas Cíclicas
Friday, December 9, 2011
Entregas Cíclicas‣ Feedback imediado.
‣ Pequenas entregas.
‣ Alertas sobre build. (verde/vermelho)
‣ Alinhamento de expectativas.
‣ Manutenção do escopo.
continuous delivery
Friday, December 9, 2011
Ops, quebraram o build!
Friday, December 9, 2011
‣ Mocks, stubs e fakes
‣ Outros testes
‣ Teste de Intregração
Ainda temos tempo?
Friday, December 9, 2011
@flavioribeiro
Perguntas?
Friday, December 9, 2011
@flavioribeiro
Obrigado! ;)
Friday, December 9, 2011
Linkshttp://programmers.stackexchange.com/questions/93302/spending-too-much-time-debugginghttp://www.slideshare.net/Skud/test-driven-development-tutorialhttp://www.ime.usp.br/~pf/algoritmos/aulas/footnotes/epigraphs.htmlhttp://tonygodoy.blog.com/files/2010/12/macaco-pensativo.jpghttp://python.orghttp://www.slideshare.net/redigon/refactoring-1658371http://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agorahttp://www.slideshare.net/osantana/tdd-com-pythonhttp://www.klauslaube.com.br/wp-content/uploads/2011/01/TestDrivenGameDevelopment.pnghttp://speakerdeck.com/u/tarsisazevedo/p/refactoring-comece-agorahttp://www.flickr.com/photos/kalavinka/4617897952/sizes/o/in/photostream/http://disciplinas.dcc.ufba.br/pub/MATB14/TDDComRuby/tdd-cycle.jpghttp://designcipta.com/wp-content/uploads/2011/02/architect_2.jpghttp://cdn02.cdnwp.celebuzz.com/wp-content/uploads/legacy/celebuzz/default/msg-127981724976-3.jpghttp://markmail.org/message/jmvo3hedwp3zrcoohttp://se.inf.ethz.ch/old/teaching/2010-S/0276/slides/pletikosa.pdfhttp://www.agile-itea.org/public/deliverables/ITEA-AGILE-D2.7_v1.0.pdfhttp://stackoverflow.com/questions/787172/what-is-a-good-sample-class-to-demonstrate-tddhttp://www.objectmentor.com/resources/articles/xpepisode.htmhttp://galeri.uludagsozluk.com/49/linus-torvalds_64902.jpghttp://3.bp.blogspot.com/_Hep8dtfRKAg/TNgEf6kvmzI/AAAAAAAAABk/BTo3MqMFl1U/s1600/bowling.jpghttp://pt.wikipedia.org/wiki/Boliche
Friday, December 9, 2011