Aprendiendo Clean Code y TDD

Katas y videos para aprender a hacer hermoso código

Rox Muñoz
Conexiones Ágiles
3 min readJun 9, 2015

--

Aprender Clean Code y TDD es fácil cuando se tiene a Uncle Bob como maestro y a tus compañeros para revisar las Katas. Ya hablé antes de cómo aprender y comenzar a implementar Clean Code nos transformó como equipo.

Todo esto puede aplicar como autoaprendizaje o mejor, en equipo y tienen como base los videos de cleancoders.com, reflexiones y katas.

¿Porqué aprender Clean Code y TDD si los programas que hacemos funcionan? En mi opinión es cuestión de profesionalismo. Que los programas corran y se entreguen a tiempo no es suficiente. Es nuestra responsabilidad que aquellos que vienen después de nosotros puedan mantener el código que hicimos. De tener el objetivo que los testers no encuentren bugs. Que nuestro CI encuentre los bugs antes de liberar. Que la instalación no sea dolorosa y que por un detallito se tenga que volver a instalar todo un monolito. De buscar arquitecturas que permitan escalabilidad, performance y seguridad. En resumen: tener una deuda técnica mínima. Un libro que me ayudó a entender esto es Clean Coder A Code of Conduct for Professional Programmers de Uncle Bob.

Objetivo 1: Clean Code y TDD Básico

  1. Ver los capítulos 1–6 (parte 1 y 2) de cleancoders.com
  2. Conforme se avanza hacer un mapa mental como este y compartirlo
  3. Hacer la Kata de string calculator y subirla a github para recibir comentarios. Repetir la kata hasta que logren hacerla en 30 minutos. Esta kata es interesante ya que la misma kata va planteando los incrementos.

Objetivo 2: TDD básico: sintiendo TDD

  1. Ver los capítulos 7, 19 y 20 de cleancoders.com
  2. Hacer la ultrafamosa Kata de Bowling y subirla a github. Como dice Uncle Bob, hay que memorizar esta Kata. Elegí esta Kata porque me parece que es la que refleja de manera más clara de las 3 reglas de TDD.

Objetivo 3: TDD avanzado: ¡aprendiendo a transformar!

  1. Ver capítulos a 21 a 24 de cleancoders.com
  2. Kata de Prime Factor. Esta kata utiliza las premisas de transformación y el resultado final son tan pocas líneas que sorprende.

Objetivo 4: ¡Refactor! mejorando el código que ya existe

  1. Hacer código limpio y con TDD cuando ya aprendimos es fácil. ¿Pero qué pasa con el tan odiado legacy code? con el libro de Refactoring, Improving the design of the current code por Martin Fowler podemos aprender a dar cobertura de pruebas y a transformar el spaguetti code en clean code
  2. Kata de Gilded Rose. Esta Kata es código productivo sin tests. Lo primero, por supuesto es hacer todos los tests con las reglas de negocio de la tienda. Después, hacer refactor asegurándonos que siempre pasen las pruebas.

Objetivo 5: ¡Divertirse!

  1. Kata del Juego de la Vida. Esta es una de las últimas katas que hicimos en equipo y ¡todos estaban muy emocionados! A primera vista, el reto es muy sencillo, pero como hay tantas maneras de enfrentarlo, que experimentar con las diferentes opciones es muy entretenido. El reto es también dibujar la matriz y meterle los patrones de Conway.

Más recursos

Más Tips

  • Si tienes miedo… ¡copia! La primera vez con TDD es difícil. Puedes copiar de un screen cast y después intentarlo. Poco a poco irás teniendo la habilidad
  • Usa varios lenguajes de programación para la misma Kata. Es divertido ver la diferencia entre todos.
  • Ponte retos: Intenta dejar sólo 4 líneas por función, no usar alguna instrucción como “IFs” o comenzar a abordar el problema desde diferente perspectiva.
  • ¡Comparte! deja un post y el código en Github para que el mundo te de retroalimentación

--

--

Rox Muñoz
Conexiones Ágiles

Mi pasión son los equipos que generan grandes productos.