2. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
1. TDD: revisión
2. TCR (test && commit || revert)
3. Presentación de la kata: substring kata
4. Iteración 0: preparación entorno TCR
5. Iteración 1
6. Iteración 2
7. Puesta en común general
8. Posibles desventajas
9. Conclusiones
AGENDA
KATAYUNO TCR
3. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
• No hemos usado TCR en producción.
• No somos expertos.
• El objetivo es practicar y aprender el nuevo
workflow.
Disclaimer
KATAYUNO TCR
5. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
Ciclo de TDD
TDD: REVISIÓN
6. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
• No escribirás ningún código de producción sin
antes tener un test que falle.
• No escribirás nada más que un test unitario que
sea suficiente para fallar.
• No escribirás nada más que el código de
producción necesario para hacer pasar el test.
Leyes de TDD
TDD: REVISIÓN
7. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
Ciclo de TDD completo
TDD: REVISIÓN
https://rachelcarmena.github.io/img/cards/posts/test-driven-programming-workflows/workflows.png
8. Sí, sí, TDD mola pero… ¿la vida
moderna es programar con TCR
no?
T C R
9. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
• Popularizado por “O Rei” Kent Beck
• Test && commit || revert (TCR) by Oddmund
Strømme, Ole Tjensvoll Johannessen and Lars
Barlindhaug
• test && commit || revert
Nuevo workflow: TCR
TRC
10. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
Ciclo TCR completo
TCR
https://rachelcarmena.github.io/img/cards/posts/test-driven-programming-workflows/workflows.png
11. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
TDD vs TCR
Test-driven programming workflows
12. Vamos a poner en practica TCR
con una kata, substring kata
K A T A
13. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
Implementar una función de la siguiente manera
substring(left, right, start, stop). La función debe devolver
las cadenas concatenadas (left y right), desde el índice de
inicio (start) hasta el índice de parada (stop).
Explicación de la kata
SUBSTRING KATA
19. Que sí, que sí, que esto de TCR mola
pero… ¿y las desventajas?
P O S I B L E S D E S V E N T A J A S
20. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
• ¿Qué pasa si no compila?
• Problema: un problema de tipado o sintaxis dispara el revert.
• Posible solución: incluimos un paso precio para compilar BTCR
• Borrado constante de los tests.
• Problema: todo se revierte, incluidos los tests.
• Puede no ser un problema real: te fuerza a nano-steps cuando escribes los tests.
• Posible solución: hacer que pase la negación del test
• Falso verde.
• Problema: si no estás primero en rojo, puede añadir un test el cual no hace nada.
• Posible solución: negar el test después de que pase y ver cómo se hace el revert.
Desventajas
POSIBLES DESVENTAJAS
22. Q U I U T W I S I V O C I B U S S U S C I P I A N T U R
• Te fuerza a seguir nano-steps.
• Te fuerza a pensar: “¿cómo puedo hacer este
cambio con un paso más pequeño?”.
• Feedback muy rápido para no tirar mucho trabajo.
• Frustración al ver cómo tu código desaparece.
Conclusiones
TCR