y divertirse programando • Lugar donde experimentar • Lugar seguro para practicar: diseño, testing, refactoring, herramientas, etc. • En parejas: humildad, generosidad, agradecimiento • Práctica deliberada • NO es un curso ni una formación ni una “clase maestra”: facilitadores
convert from normal numbers to Roman Numerals. (there is no need to be able to convert numbers larger than about 3000) Ayuda: • http://www.novaroma.org/via_romana/numbers.html : no más de tres símbolos similares seguidos • https://www.rapidtables.com/convert/number/roman-numerals-converter.html
RED -> GREEN: escribir el mínimo código necesario para pasar el test. • Feedback rápido • Baja complejidad en cada iteración El problema del impás • Mala elección en el orden de creación de los tests: bloqueo y “explosión”. • No hacer el código cada vez más genérico con cada test.
código • Cada transformación tiene una prioridad o un orden • Cuanta más alta es la prioridad, más simple es la transformación • Ayuda al programador a crear el paso más simple posible (Baby step) • El código va de específico a genérico
priority transformations. • When posing a test choose one that can be passed with higher priority transformations. • When an implementation seems to require a low priority transformation, backtrack to see if there is a simpler test to pass
las transformaciones correctas? (probablemente no) • ¿Existen mejores nombres para las transformaciones? (casi sseguro) • ¿Existe realmente una prioridad?
phase can be achieved by employing a fixed set of behavior changing transformations to the code. • These changes move the code from a specific form to a more generic form. • It also appears that these transformations have a preferred order based on complexity. This ordering can be used in both the red and green phases of TDD. • TDD impasses will be reduced or eliminated.
Outside-In TDD: ▪ https://www.youtube.com/watch?v=XHnuMjah6ps ▪ https://www.youtube.com/watch?v=24vzFAvOzo0 • Carlos Blé ◦ Implementando algoritmos con TDD ◦ Kata sobre juego de cartas