olá Pessoal,
O objetivo deste post é dar um overview do livro TDD By Example, eu li o livro no inicio do ano, mas só agora conseguir liberar o post.Certamente se você quer entender algo de TDD já deve ter colocado o mesmo na sua lista. Nesse post vou dá um overview com meu ponto de visto sobre o livro. Se houver alguma critica com certeza ela será construtiva. 🙂
Lets go…
Overview
O livro na parte I atende o que esperamos sobre TDD e o que já vimos na internet, porém o Kent Beck aborda de uma forma bem longe de qualquer linguagem de programação é abstração mesmo(e isso é bom), se você está iniciando com TDD, e se sente muito inseguro em saber qual o próximo unit tests criar, então terá dificuldades em seguir adiante em muita parte do livro, porque há questões entre linhas que só com uma boa dose de pratica que conseguimos identificar porque já fizemos. E a todo momento o Kent Beck tenta provar que TDD não é apenas escrever unit tests primeiro e sim uma forma de ti guiar para saber que está desenvolvendo algo correto conforme esperado, quando surgir um defeito, saberá fix, no menor tempo e maneira rápida e que ter tests é uma consequência. É como funciona um alarme. Se você põe um alarme na sua casa, ele não vai disparar do nada. Um alarme devidamente configurado, foi programado para disparar quando alguma regra de segurança fosse quebrada (uma porta que abriu que não deveria). E o alarme ti dar um feedback no menor tempo possível, o mesmo com os units tests, se eles quebraram é porque algo mudou em algum lugar que fez um de seus tests não ter o resultado esperado. Tirei essa conclusão durante abordagem do Beck.
E a pratica?
Não tem nada de pratico não, esqueça algo que possa fazer passo-passo, é abstração mesmo, ele põe os códigos lá e vai mostrando o que fazer. Bem, este também é o proposito do livro de mostrar o uso de TDD e não ser uma receita de bolo, porque não há receita de bolo, mas sentir que se o leitor é bem iniciante com TDD, pode vai ficar frustado. Eu diria que o publico alvo, seria um leitor que já fez alguns TDDs com aqueles software house que fazemos nas madrugadas de isonia, ou quem já usa na empresa e quer aprimorar.
As demais parte do livro é bem teoria, é abordado padrões de projeto (um breve overview), depois vai para refactoring, fala do uso de TDD, mas achei a leitura dele cansativa, o Kent Beck precisa escrever melhor na minha opnião, falo em termo de didático, sinto que na leitura fica algo “meio explicado” e que precisamos fazer associações para entender o que ele quis dizer. E não adianta dizer que bons programadores não escreve bem, a Kathy Sierra e seu time da serie “use à cabeça” provam isso para o mundo. E há outros autores por ai que sabe escrever bem, a questão é pensar mais como leitor do que autor/desenvolvedor. E isso não é uma tarefa fácil. Já consigo imaginar o sofrimento do Kent.
Custo x beneficios
O livro não é tão caro, com o dolar mais barato agora deve custar menos de 70,00 reais. Eu acho um livro válido se você já tem uma pratica de TDD e que ver alguma coisa, mas acho que há livros melhores e esperava mais do livro do Kent.
Os capitulos
Esses aqui são bem curtos, somente na parte bem teorica no final do livro que é tem caps longos, mas na de TDD na parte I, são bem pequenos mesmo de ter 3-4 páginas e achei isso legal, porque ele vai na ideia de baby-steps, explica só um trecho e explica de forma especifica.
O aprendizado
Bem, após a leitura conseguir consolidar mais um pouco de teoria de TDD, abrir mais minha mente de forma pratica que TDD guia você mais para o design e os units tests são consequência, a cobertura de code também. Fora, a organização e policiamento quando estiver no campo de batalha de TDD, não dar passos longos, saber quando preciso dar um passo atras e recomeçar, confiança no que entrego, garantir que atende aos requisitos e com alguma coisa próximo a zero de defects caso aconteça. TDD e refactoring estão mais próximos que qualquer coisa no mundo, querer usar TDD sem técnicas de refactoring é quase impossível, pois o próprio processo começa a gritar no menor tempo possível dizendo : “aqui precisa de refactoring”. Enfim, achei que foi um bom conhecimento adquirido.
Concluindo
O sentimento após a leitura é que “valeu” ter lido deu pra pegar detalhes, mas isso porque já tinha praticado e lido outros materiais antes, se tivesse lido como meu primeiro material, a frutação seria grande e teria jogado o livro de lado.
Bom fica aqui meu overview, e você o que achou do livro? Comente, please!!
Abracos, vou ficando por aqui.. see ya!! guys!