Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Tdd desde las trincheras

214 vues

Publié le

Slides utilizados durante la charla
"TDD desde las trincheras: teoría y lecciones aprendidas"
https://www.meetup.com/es-ES/Madrid-Scrum-User-Group/events/258185830/
Grabación de la charla: https://youtu.be/_oX7vvSQxI8

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Tdd desde las trincheras

  1. 1. TDD desde las trincheras Leonardo Micheloni @leomicheloni
  2. 2. @leomicheloni
  3. 3. ¿Quién soy? • Leonardo Micheloni • +15 Programador • +10 años en Agile • Tokiota @leomicheloni @leomicheloni
  4. 4. Objetivo • Comprender TDD • Contar experiencias • No “vender” la idea @leomicheloni
  5. 5. ¿Qué es TDD? • Desarrollar a partir de los test • Escribir primero el test, luego el código que valida el test • Comenzar from scratch • Crear la versión más simple del código que haga pasar el test • Refactorizar • Baby steps @leomicheloni
  6. 6. Estructura de un test • Setup • Ejecución • Validación • Cleanup @leomicheloni
  7. 7. Simples @leomicheloni
  8. 8. TDD ciclo @leomicheloni
  9. 9. Terminología • Dummy • Solo datos • Stub • Datos condicionales • Mock • Comportamiento @leomicheloni
  10. 10. Mock @leomicheloni
  11. 11. Algunas recomendaciones • Keep unit small • Reducir el debugging • Si hay un bug, hacer un test • El código queda “autodocumentado” @leomicheloni
  12. 12. ¿Qué permite TDD? • Comenzar sin depender de otros componentes • Mejorar la comprensión del negocio (fail fast) • Descubrir la API • Trabajar por iteraciones (pomodoro) • Que emerja la arquitectura • Detectar casos de uso @leomicheloni
  13. 13. Qué requiere? • Ciertos conocimientos “avanzado” (como IoC) • Disciplina • Capacidad para separar el problema @leomicheloni
  14. 14. Resultado • Pensar la solución a partir del uso • Mayor confianza en lo entregado • Mayor felicidad • Mayor calidad (refactor) • Evita el sobre-diseño • Evolución sólida => test @leomicheloni
  15. 15. Live coding @leomicheloni
  16. 16. Experiencias • Proyectos legacy (funcionalidades nuevas) • Difícil comenzar desde cero • Hace falta práctica • No vale la pena en todo el código (code coverage) • Hace falta experiencia • Es necesario conocer ciertas herramientas • No es simple aplicarlo a todas las áreas (UI, etc.) • Puede dar una falsa sensación de seguridad @leomicheloni
  17. 17. Grandes preguntas • ¿Se puede hacer siempre TDD? • ¿Cualquiera puede hacer TDD? • ¿Se puede aplicar en toda la aplicación? • ¿Queda el código “autodocumentado”? • ¿La aplicación es más confiable? • ¿Aumenta el costo de mantenimiento? • ¿Se puede aplicar en proyectos existentes? @leomicheloni
  18. 18. Preguntas @leomicheloni
  19. 19. Gracias! @leomicheloni @leomicheloni
  20. 20. Links útiles • TDD Katas: http://osherove.com/tdd-kata-1/ • Fizz Buzz Kata: https://opencredo.com/blogs/tdd-fizzbuzz-junit- theories/ • Bob Martin: https://blog.cleancoder.com/ • TDD Wars: https://www.codewars.com/ • Mi canal de Youtube: https://www.youtube.com/channel/UCQlqd6byJpXtGuYrL4cElgw • Mi blog: http://leomicheloni.com @leomicheloni

×