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. “Cualquiera puede escribir código que una máquina entiende. Los buenos

    programadores escriben código que los humanos pueden entender” Martin Fowler
  2. • 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
  3. PRINCIPIO ABIERTO/CERRADO OPEN/CLOSED PRINCIPLE • Cada entidad debe estar abierta

    a extensión, pero cerrada a modificación • Inyección de dependencias
  4. 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
  5. 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
  6. 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
  7. 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
  8. ?