SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Katayuno TCR

“test && commit || revert”
30 Marzo 2019
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
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
Calentamos motores revisando a
nuestro viejo amigo TDD
T D D : R E V I S I Ó N
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
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
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
Sí, sí, TDD mola pero… ¿la vida
moderna es programar con TCR
no?
T C R
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
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
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
Vamos a poner en practica TCR
con una kata, substring kata
K A T A
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
Iteración 0: preparación entorno TCR
S U B S T R I N G K A T A
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
https://github.com/islomar/tcr-workshop
Preparación entorno TCR
ITERACIÓN 0
Iteración 1
S U B S T R I N G K A T A
Iteración 2
S U B S T R I N G K A T A
Puesta en común general
S U B S T R I N G K A T A
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
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
CONCLUSIONES
C O N C L U S I O N E S
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
Gracias ;)
K A T A Y U N O T C R

Contenu connexe

Similaire à Katayuno TCR (test && commit || revert)

Control de tres términos
Control de tres términosControl de tres términos
Control de tres términossuperone314
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosJuan Timoteo Cori
 
Guía del PMBOK® > Gestión del Tiempo (Parte 3)
Guía del PMBOK® > Gestión del Tiempo (Parte 3)Guía del PMBOK® > Gestión del Tiempo (Parte 3)
Guía del PMBOK® > Gestión del Tiempo (Parte 3)Dharma Consulting
 
Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simplepsluaces
 
Cómo y para qúe usar un ciclo do while en c++
Cómo y para qúe usar un ciclo do while en c++Cómo y para qúe usar un ciclo do while en c++
Cómo y para qúe usar un ciclo do while en c++Tensor
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Kit Bienvenida a Kanban de Ibercaja
Kit Bienvenida a Kanban de IbercajaKit Bienvenida a Kanban de Ibercaja
Kit Bienvenida a Kanban de IbercajaVictor Royo
 
Haciendo de las pruebas tus mejores aliadas
Haciendo de las pruebas tus mejores aliadasHaciendo de las pruebas tus mejores aliadas
Haciendo de las pruebas tus mejores aliadasJohanna Duque
 
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2Ronny Morán
 
Aprenda a reparar televisión (módulo 1) Omar Cuéllar Barrero
Aprenda a reparar televisión (módulo 1) Omar Cuéllar BarreroAprenda a reparar televisión (módulo 1) Omar Cuéllar Barrero
Aprenda a reparar televisión (módulo 1) Omar Cuéllar BarreroAlexis Colmenares
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development DrivenParadigma Digital
 
Desarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebasDesarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebasTatiana Al-Chueyr
 
Practicas 2016
Practicas 2016Practicas 2016
Practicas 2016Tensor
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasOrlando Bustos Mateluna
 

Similaire à Katayuno TCR (test && commit || revert) (20)

Control de tres términos
Control de tres términosControl de tres términos
Control de tres términos
 
Confiabilidad
ConfiabilidadConfiabilidad
Confiabilidad
 
PERT CPM (1).ppt
PERT CPM (1).pptPERT CPM (1).ppt
PERT CPM (1).ppt
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
Manual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datosManual algoritmos y_estructura_de_datos
Manual algoritmos y_estructura_de_datos
 
Guía del PMBOK® > Gestión del Tiempo (Parte 3)
Guía del PMBOK® > Gestión del Tiempo (Parte 3)Guía del PMBOK® > Gestión del Tiempo (Parte 3)
Guía del PMBOK® > Gestión del Tiempo (Parte 3)
 
Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simple
 
Cómo y para qúe usar un ciclo do while en c++
Cómo y para qúe usar un ciclo do while en c++Cómo y para qúe usar un ciclo do while en c++
Cómo y para qúe usar un ciclo do while en c++
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDD
 
Kit Bienvenida a Kanban de Ibercaja
Kit Bienvenida a Kanban de IbercajaKit Bienvenida a Kanban de Ibercaja
Kit Bienvenida a Kanban de Ibercaja
 
Haciendo de las pruebas tus mejores aliadas
Haciendo de las pruebas tus mejores aliadasHaciendo de las pruebas tus mejores aliadas
Haciendo de las pruebas tus mejores aliadas
 
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
Organización y Arquitectura de Computadores ESPOL Tercera Evaluación 2012-2
 
Aprenda a reparar televisión (módulo 1) Omar Cuéllar Barrero
Aprenda a reparar televisión (módulo 1) Omar Cuéllar BarreroAprenda a reparar televisión (módulo 1) Omar Cuéllar Barrero
Aprenda a reparar televisión (módulo 1) Omar Cuéllar Barrero
 
Seminario de Test Development Driven
Seminario de Test Development DrivenSeminario de Test Development Driven
Seminario de Test Development Driven
 
Curso virtual
Curso virtualCurso virtual
Curso virtual
 
Curso virtual
Curso virtualCurso virtual
Curso virtual
 
Desarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebasDesarollando aplicaciones web en python con pruebas
Desarollando aplicaciones web en python con pruebas
 
Practicas 2016
Practicas 2016Practicas 2016
Practicas 2016
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 

Plus de 540deg

Test doubles
Test doublesTest doubles
Test doubles540deg
 
Clean code 9
Clean code 9Clean code 9
Clean code 9540deg
 
Clean code 10-11
Clean code 10-11Clean code 10-11
Clean code 10-11540deg
 
Clean code 7-8
Clean code 7-8Clean code 7-8
Clean code 7-8540deg
 
Clean code 4-6
Clean code 4-6Clean code 4-6
Clean code 4-6540deg
 
Clean code 1-3
Clean code 1-3Clean code 1-3
Clean code 1-3540deg
 
Arquitectura hexagonal
Arquitectura hexagonalArquitectura hexagonal
Arquitectura hexagonal540deg
 

Plus de 540deg (7)

Test doubles
Test doublesTest doubles
Test doubles
 
Clean code 9
Clean code 9Clean code 9
Clean code 9
 
Clean code 10-11
Clean code 10-11Clean code 10-11
Clean code 10-11
 
Clean code 7-8
Clean code 7-8Clean code 7-8
Clean code 7-8
 
Clean code 4-6
Clean code 4-6Clean code 4-6
Clean code 4-6
 
Clean code 1-3
Clean code 1-3Clean code 1-3
Clean code 1-3
 
Arquitectura hexagonal
Arquitectura hexagonalArquitectura hexagonal
Arquitectura hexagonal
 

Katayuno TCR (test && commit || revert)

  • 1. Katayuno TCR “test && commit || revert” 30 Marzo 2019
  • 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
  • 4. Calentamos motores revisando a nuestro viejo amigo TDD T D D : R E V I S I Ó N
  • 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
  • 14. Iteración 0: preparación entorno TCR S U B S T R I N G K A T A
  • 15. 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 https://github.com/islomar/tcr-workshop Preparación entorno TCR ITERACIÓN 0
  • 16. Iteración 1 S U B S T R I N G K A T A
  • 17. Iteración 2 S U B S T R I N G K A T A
  • 18. Puesta en común general S U B S T R I N G K A T A
  • 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
  • 21. CONCLUSIONES C O N C L U S I O N E S
  • 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
  • 23. Gracias ;) K A T A Y U N O T C R