Tdd desde las_trincheras

download Tdd desde las_trincheras

If you can't read please download the document

Transcript of Tdd desde las_trincheras

TDD
desde las trincheras

Juan Llad@jllado

Travel Compositor

http://online.travelcompositor.com

Motivacin de la charla

Motivacin de la charla

Excusas

Superiores (jefes de proyecto, gerentes, etc) que no permiten el uso de TDD

Proyectos legacy y cdigo muy difcil de mantener

Plazos de proyecto muy cortos. Sin tiempo de practicar TDD

Superiores que no permiten el uso de TDD

Hay que pedir permiso para pensar?

Pedimos permiso para practicar o para aprender?

Proyectos legacy

No hay nada que te impida desarrollar nueva funcionalidad usando TDD

Aunque... puedes necesitar dependencias del proyecto que te dificulten los tests

Plazos de proyecto muy cortos

Cuando programo dedico ms tiempo a pensar que a escribir cdigo

Trabajar a destajo puede dar la sensacin de ms velocidad pero luego se paga ms caro

La velocidad debe ser una consecuencia de hacerlo bien, no una aptitud

Disclaimer

eXtreme Programming

XP: valores

Simplicidad

Comunicacin

Retroalminetancin

Coraje

Respeto

TDD

TDD

http://blog.jbrains.ca/

Escuelas de TDD

Classical/Inside-Out (Chicago)

Mockist/Outside-In (London)Doble de test: http://www.martinfowler.com/bliki/TestDouble.html

Quiero prctiar TDD!

Valora tus conocimientos

Testing

Patrones y principios de diseo

Refactoring/Herramientas de trabajo

Lee!

Clean Code (Robert C. Martin)

TDD by Example (Kent Beck)

Effective Unit Testing (Lasse Koskela)

Growing Object-Oriented Software, Guided by Tests (Steve Freeman y Nat Pryce)

Diseo gil con TDD (Carlos Bl)

Screencasts

Kata de las Cartas (Carlos Bl) https://www.youtube.com/watch?v=LJQnxDZQHoo

Testing and Refactoring Legacy Code (Sandro Mancuso)https://www.youtube.com/watch?v=_NnElPO5BU0

Outside-In TDD (Sando Mancuso)https://www.youtube.com/watch?v=XHnuMjah6ps

Practica!

Encontrar situaciones cmodas donde poder practicar sin presin

Katas

Lo importante de una kata es aprender, no terminarla

Cuando ves que has llegado a un callejn sin salida, no tengas miedo a borrar cdigo y empezar de cero (o pasos anteriores)

Compara tus soluciones con las de otros:https://github.com/12meses12katas

http://codingdojo.org

http://www.solveet.com

Katas

http://www.slideshare.net/PedroSantos205/software-craftmanship-coaching

Practica en el trabajo

Antes de probar algo nuevo, tienes que conocer el sistema

Busca partes del proyecto donde te encuentres cmodo

Practica de forma progresiva

Metdico/Constante

Lista de ejemplo antes de hacer el primer test

Pon atencin a los tres etapas: red, green y blue. Las tres son importantes

Baby steps. Escribir el cdigo mnimo para pasar los tests

Los tests tambin se tienen que mantener. En la fase de refactor hay que revisarlos

Keep It Simple. Less astonishment principle

Usa buenos nombre

An as, me atasco practicando TDD

The Transformation Priority Premisehttps://8thlight.com/blog/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html

Why do you get stuck? Because you were not adding sufficient generality to the production codehttp://blog.cleancoder.com/uncle-bob/2014/12/17/TheCyclesOfTDD.html

Bugs (nuevo mindset)

Antes de corregir el bug, aade un test que demuestre que falla

A continuacin, resuelve el bug y certifica que el test est en verde

La regla del Boy Scout

Four rules of simple design

Passes the tests

Reveals intention

No duplication

Fewest elemens

SOLID

Single responsibility principle

Open/closed principle

Liskov substitution principle

Interface segregation principle

Dependency inversion principle

No pares de aprender!

Preocupado por la velocidad?

Preguntas?

GRACIAS!

Juan Llad@jllado