¿Cómo aplicar TDD? - Nivel avanzado

Si tienes mucha experiencia implementando TDD, tu plan de aprendizaje debería centrarse en profundizar tu comprensión de los principios avanzados, explorar nuevas herramientas y técnicas, y aplicar TDD en contextos más complejos.

Aquí te presentamos un plan con retos a tu medida para expandir tus conocimientos y habilidades en TDD:

1. Refuerza la teoría 

Incluso cuando se tiene mucha experiencia, es importante revisar los fundamentos teóricos para alimentar los conocimientos.

Entre los conceptos que puedes investigar para aumentar el desafío de tu práctica está la relación de TDD y la arquitectura de software. Comprender cómo TDD influye en las decisiones arquitectónicas y cómo puede guiar el diseño de sistemas complejos.

TDD Harms Architecture, un artículo de Robert C. Martin (Uncle Bob), ofrece una perspectiva crítica sobre cómo TDD puede influir en la arquitectura del software. Asimismo, el libro Clean Architecture, también de Rober C. Martin, es una guía útil para aprender cómo integrar TDD con principios de arquitectura limpia para diseñar software de alta calidad.

Otra relación importante es la de TDD en sistemas distribuidos. Explora estrategias para aplicar TDD al desarrollo de microservicios y sistemas distribuidos. Un libro que puede ayudarte es Building Event-Driven Microservices, de Adam Bellemare, en el que podrás aprender cómo se generan y propagan los datos en tus proyectos.

Emmanuel Valverde, craftsperson en Codurance, ofrece una lista completa de libros y workshops de nivel avanzado en TDD.

2. Katas avanzadas 

Como siempre, para que la teoría sea útil, hace falta práctica. Aquí tienes algunas opciones para poner a prueba tus skills.

  • Bank kata: Crea un sistema que permita administrar las cuentas bancarias de un banco con especificaciones complejas. La serie de Outside-In TDD de Sandro Mancuso te puede ser útil para resolver esta kata. 

  • Kata de reservas: Desarrolla un sistema de reservas para hoteles corporativos que cumpla con los requisitos de tres tipos de usuario diferentes. 

  • Kata de números romanos: Este ejercicio te permitirá perfeccionar el proceso para la toma de decisiones sobre cómo añadir tests.

3. Exploración de herramientas y frameworks avanzados

Aprende a utilizar herramientas avanzadas de testing y frameworks específicos para el lenguaje o entorno de desarrollo que prefieras. Esto puede incluir frameworks de mocks más sofisticados, herramientas de cobertura de código, y sistemas de integración continua especializados.

Utiliza tutoriales avanzados de herramientas como Mockito (para Java), Sinon.js (para JavaScript), o PyTest y Mock (para Python). Aquí te dejamos un playlist enfocado en testing con ejemplos y reflexiones sobre cómo implementar nuevas prácticas complejas en tus proyectos.

4. Comunidad y aprendizaje colaborativo 

Participar en eventos y comunidades que fomenten los intercambios te ayudará a encontrar nuevas perspectivas para tus desarrollos.

Uno de los eventos anuales más importantes es el Global day Coderetreat, un día entero dedicado al desarrollo colaborativo de software, con el objetivo de perfeccionar las habilidades técnicas y compartir buenos momentos en comunidad.

En Codurance nos sumamos cada año a este evento y te invitamos a participar. Revisa este video del Global Day of Coderetreat para que conozcas más sobre el evento de la mano de nuestro equipo y de los asistentes. 

Una de las mejores formas de aprender es enseñar. Ofrece tutoría a desarrolladores TDD menos experimentados. Esto te expone a nuevos retos y te permite aplicar tus habilidades en una variedad de contextos.

Asimismo, busca capacitación para tu nivel que te permita aprender de otros expertos del sector.  

Recomendaciones Finales

  • Retroalimentación y reflexión: Después de cada kata o proyecto, toma un tiempo para reflexionar sobre lo que aprendiste y cómo puedes mejorar. La autoevaluación es clave para el crecimiento continuo.

  • Diario de aprendizaje: Lleva un diario de tus progresos en TDD. Anota los desafíos que enfrentaste, cómo los superaste, y las lecciones aprendidas.

Este plan de aprendizaje está diseñado para desafiarte y ampliar tus límites en TDD. El objetivo no es solo mejorar tus habilidades técnicas, sino también contribuir a elevar el nivel del desarrollo de software en la industria.

 

Descubre el impacto real de Katalyst by Codurance