Test-Driven Development e sua influência no design
by mauricioaniche on Sep 14, 2010
- 1,719 views
Minha palestra sobre TDD e sua influência no design, dada no QCON SP de 2010.
Minha palestra sobre TDD e sua influência no design, dada no QCON SP de 2010.
Accessibility
Tags
Upload Details
Uploaded via SlideShare as Apple Keynote
Usage Rights
© All Rights Reserved
Statistics
- Favorites
- 6
- Downloads
- 44
- Comments
- 0
- Embed Views
- Views on SlideShare
- 1,718
- Total Views
- 1,719
aluno de mestrado, onde pesquiso sobre tdd
trablho na locaweb
- Adicione um teste; Rode todos os testes e veja o novo teste falhar; Faça uma pequena alteração; Rode todos os testes e veja todos passarem; Refatore para remover duplicação.
- Ajuda a resolver um dos maiores problemas do desenvolvimento de software, que é o gerenciamento de dependências
muitas definições que só levam em conta o fato de vc escrever um teste antes (igual a do JUnit in action)
- TDD mostra o problema atraves do feedback dos testes, e a experiencia do programador faz a diferenca para resolver
- como vimos no exemplo acima, TDD faz com que as dependências fiquem naturalmente explícitas
- além disso, faz com que os comportamentos sejam invocados de forma mais conveniente.
a composicao eh mais simples que a soma das partes
- Receba apenas o que for realmente dependência!
- Pré-condições iguais ou mais fracas e pós-condições iguais ou mais fortes. Exemplo do quadrado, retangulo
como comentado anteriormente, esse é um bom exemplo de dependências do tipo “notifiers”, e pode ser refatorado!
- outro exemplo: criar filtros... se tal campo foi postado, então adicione isso na condição, e por aí vai...
veja que ficou facil customizar o comportamento de um filtro, além de ser muito mais fácil testar: agora o número de combinações para cada um deles é muito menor!
alem disso, você tem uma interface muito mais rica para o seu domínio que trata de datas! Com isso, você pode adicionar novos comportamentos de maneira fácil!
- pode se tornar gigante, e a manutenção pode ser complicada