• Code Sherpas

Mejora tu flujo de TDD con estos consejos

¿Has intentado adoptar la práctica del desarrollo guiado por tests pero sientes que es farragoso, tardas mucho en escribir los tests y otro tanto en hacerlos pasar? Tal vez estás intentando dar pasos demasiado grandes y tu diseño puede simplificarse un poco más.


Cuando practicas TDD tu objetivo principal debe ser:


👉 Acortar el feedback loop para darte cuenta lo antes posible si no estás yendo en la dirección correcta.


👉 Conseguir un diseño simple. Según Kent Beck, diseño simple es aquél que:


  • Tiene todos los tests en verde.

  • Expresa cada idea de forma explícita.

  • No es redundante. "Says everything once and only once".

  • No tiene partes superfluas. Respeta KISS. Se ciñe a la complejidad esencial del negocio y evita la complejidad accidental de la solución técnica.


Evita frustraciones. Estos son algunos consejos para conseguir un buen flujo al hacer TDD y por tanto, acortar el feedback loop y hacer emerger un diseño simple.

El ciclo red/green/refactor debe ser de minutos. Para conseguirlo lo mejor es desarrollar tu código dando Baby Steps.


Empieza con un test que cubra el caso más simple posible, para pasar a verde escribe el código de producción mínimo que sirva para ese caso.


Puedes aplicar las heurísticas Fake it, Obvious implementation o Triangulation y la Transformation Priority Premise, para pasar de rojo a verde lo antes posible y evitar largos periodos de bloqueo (eso alarga el tiempo que tardas en recibir feedback).


Cuando estés en rojo y tengas que pasar a verde, no te preocupes mucho por si el código queda bonito o has duplicado cosas. Tu objetivo es llegar a un estado estable lo antes posible! Utiliza la fase de refactor para mejorar tu diseño.


En los siguientes ciclos, elige bien tus tests, para transformar tu código, haciéndolo más general, es decir, que valga para un mayor número de casos, a medida que vas escribiendo más tests específicos.


No te olvides de la fase de refactor, es la oportunidad perfecta para aplicar el principio de mejora continua, mejorar y dar forma a tu diseño de forma incremental y así evitar grandes y dolorosos refactors. Happy coding!


4 visualizaciones0 comentarios