Seminario SOLID-TDD

413 views

Published on

Presentación del seminario "Técnicas avanzadas de programación" donde se tratan los principios SOLID y la práctica de TDD http://bit.ly/vWuad4

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
413
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Seminario SOLID-TDD

  1. 1. Técnicas avanzadas dediseño y programación
  2. 2. Desarrollador / Líder TécnicoInstructor / Ayudante de cátedraOrador AficionadoAgilista EntusiastaGabriel Falcone
  3. 3. Buen diseño
  4. 4. Buen diseñoCambios
  5. 5. Buen diseñoEntregables
  6. 6. Buen diseñoComplejidad
  7. 7. Problemas de diseño
  8. 8. Problemas de diseñoFragilidad
  9. 9. Problemas de diseñoRigidez
  10. 10. Problemas de diseñoInmovilidad
  11. 11. Problemas de diseñoViscosidad
  12. 12. Problemas de diseñoDifícil de entender
  13. 13. S.O.L.I.D.Single Responsability PrincipleOpen Closed PrincipleLiskov Susbtitution PrincipleInterface Segregation PrincipleDependency Inversion Principle
  14. 14. Única ResponsabilidadUna clase debe tener una única razónpara ser cambiada
  15. 15. Única ResponsabilidadLos suizos no están de acuerdo coneste principio
  16. 16. Abierto - CerradoLas entidades de software (clases,módulos, funciones, etc) deben estarabiertas a extensión, pero cerradas amodificación.Los cambios deben generar códigonuevo, no modificar el código viejo.
  17. 17. Sustitución de LiskovDonde se usa una referencia a unaclase base debería poder usarseclases derivadas sin que esto afecte.
  18. 18. Segregación de interfazLos clientes no deben ser forzados adepender de métodos que no usan.
  19. 19. Inversión de dependenciaLos módulos de alto nivel no debendepender de los módulos de bajonivel. Ambos deben depender deabstracciones.Las abstracciones no deben dependerde detalles. Los detalles debendepender de las abstracciones.
  20. 20. ¿Por quéhablamos de unametodología quetiene mas de 10años?
  21. 21. ¡¡Me danasco!!
  22. 22. Yo soy programador, no tester
  23. 23. Es trivial, no necesita testing
  24. 24. No hay tiempo para testing
  25. 25. Es muy difícil de probar
  26. 26. Unit Testing
  27. 27. MSTest
  28. 28. Demo
  29. 29. El patrón 3AArrangeActAssert
  30. 30. Demo
  31. 31. Eso no huele aun Unit Test
  32. 32. Rápido
  33. 33. Atómico
  34. 34. Repetible
  35. 35. Aislado
  36. 36. Demo
  37. 37. Mockshttp://martinfowler.com/articles/mocksArentStubs.html
  38. 38. Demo
  39. 39. TDD
  40. 40. TDDEs una metodología
  41. 41. TDD¡Pero no sobre testing!
  42. 42. TDD¡Sino sobre diseño!
  43. 43. TDDEscribiendo los tests primero
  44. 44. Escribir el código mas simpleque funcioneEverything shouldbe made as simpleas possible, butnot simpler.
  45. 45. Guiar el diseño del códigomediante unit tests
  46. 46. Escribir soluciones simples alos requerimientos actuales
  47. 47. Escribir solo el código para“superar” el test
  48. 48. Ciclo de vida en TDDNuevorequerimiento
  49. 49. Ciclo de vida en TDDEscribirun testNuevorequerimiento
  50. 50. Ciclo de vida en TDDEjecutarel testEscribirun testNuevorequerimientoHacer quefalle
  51. 51. Ciclo de vida en TDDEjecutarel testEscribirun testNuevorequerimientoEscribirel códigoHacer quefalle
  52. 52. Ciclo de vida en TDDEjecutarel testEscribirun testNuevorequerimientoEscribirel códigoEjecutarel testHacer quefalleHacer quefuncione
  53. 53. Ciclo de vida en TDDEjecutarel testEscribirun testNuevorequerimientoEscribirel códigoEjecutarel testRefactorizarHacer quefalleHacer quefuncione
  54. 54. Ciclo de vida en TDDEjecutarel testEscribirun testNuevorequerimientoEscribirel códigoEjecutarel testRefactorizarEjecutarel testHacer quefalleHacer quefuncioneMejorar elcódigo
  55. 55. Ciclo de vida en TDDEjecutarel testEscribirun testNuevorequerimientoEscribirel códigoEjecutarel testRefactorizarEjecutarel testHacer quefalleHacer quefuncioneMejorar elcódigo
  56. 56. Ciclo de vida en TDD
  57. 57. Demo
  58. 58. TDD
  59. 59. TDDPromueve la calidad en nuestrocódigo
  60. 60. TDDPromueve la calidad en nuestrocódigoPermite obtener soluciones massimples
  61. 61. TDDPromueve la calidad en nuestrocódigoBrinda confianza sobre el códigoque estamos agregandoPermite obtener soluciones massimples
  62. 62. Preguntasmail: gabrielfalcone@gmail.comgfalcone@fi.uba.artwitter: gabrielfalconeskype: gabrielfalcone

×