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 full-size slide

  2. Hemos terminado nuestro desarrollo

    View full-size slide

  3. ¡¡Nueva funcionalidad!!

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  6. ● 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 full-size slide

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

    View full-size slide

  8. 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 full-size slide

  9. 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 full-size slide

  10. 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 full-size slide

  11. 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 full-size slide

  12. FIN
    Jesús Rodríguez

    View full-size slide