Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SOLID: No es un juego de jenga

SOLID: No es un juego de jenga

Pequeña introducción a los principios SOLID

Jesús Rodríguez

May 23, 2016
Tweet

Other Decks in Technology

Transcript

  1. SOLID
    NO ES UN JUEGO DE JENGA
    JESÚS RODRÍGUEZ

    View Slide

  2. Hemos terminado nuestro desarrollo

    View Slide

  3. ¡¡Nueva funcionalidad!!

    View Slide

  4. View Slide

  5. View Slide

  6. “Cualquiera puede escribir código que una máquina
    entiende. Los buenos programadores escriben código que
    los humanos pueden entender”
    Martin Fowler

    View Slide

  7. SOLID
    Cinco principios básicos de la programación

    View Slide

  8. ● Cada entidad debe de ser responsable de una única cosa
    ● Pregúntate qué es lo que hace esa entidad
    ● No debería de usarse la palabra “y”
    PRINCIPIO DE RESPONSABILIDAD ÚNICA
    SINGLE RESPONSIBILITY PRINCIPLE

    View Slide

  9. View Slide

  10. View Slide

  11. PRINCIPIO ABIERTO/CERRADO
    OPEN/CLOSED PRINCIPLE
    ● Cada entidad debe estar abierta a extensión, pero cerrada a
    modificación
    ● Inyección de dependencias

    View Slide

  12. View Slide

  13. View Slide

  14. PRINCIPIO SUSTITUCIÓN LISKOV
    LISKOV SUBSTITUTION PRINCIPLE
    ● Las subclases no deben de romper el resultado esperado de la clase
    padre
    ● Nos obliga a asegurarnos de que cuando extendemos una clase no
    estamos alterando el comportamiento de la padre

    View Slide

  15. View Slide

  16. View Slide

  17. PRINCIPIO DE SEGREGACIÓN DE INTERFACES
    INTERFACE SEGREGATION PRINCIPLE
    ● Muchas interfaces muy concretas son mejores que una con un
    propósito general
    ● Ninguna clase debería depender de métodos que no usa

    View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. PRINCIPIO DE INVERSIÓN DE DEPENDENCIAS
    DEPENDENCY INVERSION PRINCIPLE
    ● Depender de abstracciones, no de concreciones
    ● Evitar que altos módulos tengan que depender de bajos módulos
    ○ Ambos deben depender de abstracciones
    ○ Clase nivel alto > Capa de abstracción > Clase nivel bajo
    ● Desacopla las clases

    View Slide

  22. View Slide

  23. View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. Realm - Donn Felker, SOLID pt 1 - S
    Realm - Donn Felker, SOLID pt 2 - O
    Realm - Donn Felker, SOLID pt 3 - L
    Realm - Donn Felker, SOLID pt 4 - I
    Realm - Donn Felker, SOLID pt 5 - D
    ENLACES DE GRAN INTERÉS
    Codemotion Meetup Jorge D Ortiz Fuentes (SOLID) y
    Pablo Guardiola (Mockito)
    DevExperto - Principio de Responsabilidad Única
    DevExperto - Principio Open Close
    DevExperto - Principio de Sustitución de Liskov
    DevExperto - Principio de Segregación de Interfaces
    DevExperto - Principio de Inversión de Dependencias

    View Slide

  28. ?

    View Slide

  29. FIN
    Jesús Rodríguez

    View Slide