- Introducción a TDD + Ejemplos con Live Coding
- Refactoring + Ejemplos con Live Coding
- Test Double (dependencias, Mocks, fakes, etc) + Ejemplos con Live Coding
- Trabajando con Legacy Code
- Mejores prácticas de TDD
- una opción es bien evolutivo, creando un test cases por vez, arreglar la compilación, hacerlo green y refactor, bien chiquitito, baby steps bien TDD y evolutivo
- la otra opción tiende a crear más test cases antes de comenzar con el SUT, lo cual de alguna manera organiza más el trabajo y permite ver el progreso.
Por otro lado, poder tener los test cases listados puede servir cuando hay que diseñoar junto a un developer más junior, lo cual lo organiza y le deja documentado su trabajo a futuro (dia/semana) y por que no pensar en medir progreso, a medida que los test cases pasan a verde, es el progreso.
En conclusión, a mi me gusta más la idea esta que les comenté recien, listar todo lo que se me viene a la cabeza y luego arrancar uno por uno, y si en el medio se me ocurre algún test más lo agrego a la cola, pero creo que tambien depende mucho de quien esté diseñando/programando y tiene que ver con que tan seguro o confidente estás con el dominio y TDD.
Algún pensamiento para compartir?
2 comentarios:
Que tal Gustavo:
Muy bueno el artículo. Personalmente también prefiero el primer acercamiento que planteás: escribir un test y trabajar concentrado en él hasta resolverlo. Lo que encontré muy cómodo es llevar una lista de TODO, en la cual voy anotando todo lo que me viene a la mente mientras trabajo con ese test (otros tests que se me ocurre debería implementar, refactorizaciones interesantes que se pueden aplicar, conceptos del dominio que me gustaría modelar, incluso comentarios sobre cómo modelaría algo), para no distraerme. La idea es que todo lo que me puede distraer de mi test actual va al TODO, con la intención de que no me quite de vista lo que estoy haciendo ahora. Y cada vez que logro que todo pase en verde, ahí selecciono la próxima tarea a realizar, volviendo al TODO.
Me interesa mucho el punto que nombraste sobre Trabajando con Legacy Code. ¿Tenés material al respecto para recomendar?
Saludos,
Abel Armoa
Abel,
Por supuesto... nunca escuchaste de la biblia, Working effectively with Legacy Code del gran Michael Feathers? El libro es genial, da para comprarlo. Pero tambien hay varios articulos y papers de Michael en objectmentor.com. Si no los encontrás avisame!
Saludos,
Publicar un comentario