SlideShare une entreprise Scribd logo
1  sur  13
Principios S.O.L.I.D. para sistemas
         de información
   Usando S.O.L.I.D. en un nivel superior
             de abstracción



   Agile Canarias Lightning Talks - 31-01-2012
       Tanausú Cerdeña Hernández (@chozero)
Recordatorio: S.O.L.I.D.
5 principios básicos de programación
orientada a objetos y diseño.


                      Gracias,
                      Uncle Bob*!
                            *Robert C. Martin
Objetivo principios S.O.L.I.D.

Crear programas más sencillos de
mantener y extender.
        (Programación Orientada a Objetos)
¿Aplicables a otro nivel de abstracción?

Hagamos un ejercicio:
    :s/objeto/sistema/

Sustituyamos “objeto” por “sistema” en la
definición de los principios y veamos si podemos
aplicarlos a sistemas de información
distribuidos.
¿Sistemas de información distribuidos?

Para esta charla, sistemas distribuidos que se
comunican mediante HTTP. Por ejemplo:
• Instagram
• Comunio
• LiveTeamApp
• Geosophic*
• …

                                   *(cuña publicitaria)
1. Single Responsibility Principle
“Un sistema debería tener una única
responsabilidad”


   Auth          Highscores                            Logger




              FB               Reverse
                                         Persistence
           connector          geocoder
2. Open/closed principle
“Los sistemas de software deberían ser abiertos
para extender pero cerrados para modificar”



     Meh. Vive le
     Open Source!
2. Open/closed principle
“Los sistemas de software deberían ser abiertos
para extender pero cerrados para modificar”


 ¿Y si lo aplicamos a las
 APIs que comunican
 sistemas?
3. Liskov Substitution Principle
“Los subsistemas de un sistema deberían ser
sustituibles por instancias de sus subtipos sin
alterar el correcto funcionamiento del sistema”

                           Amazon S3


                    API     MySQL


                            #Mega
4. Interface Segregation Principle
“Es mejor tener muchas interfaces de cliente
específicas que una interfaz de propósito
general”




        Tabla Periódica de las APIs de Google
5. Dependency Inversion Principle
“Un sistema debería depender de
abstracciones, no de concreciones”

                                         Amazon S3


             image-store.instagram.com    MySQL


                                          #Mega
Conclusiones
• Deberíamos tener un conjunto de principios
  para el diseño de sistemas.
• S.O.L.I.D. es un buen comienzo
• Muy necesario en sistemas de vida larga
  (admón. Pública, grandes
  compañías, banca,…)
• Nuestros nietos programadores lo
  agradecerán.
¿Ideas, sugerencias y preguntas?

Contenu connexe

Similaire à Principios S.O.L.I.D. en Sistemas de Información Distribuidos

LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
Jonathan Hidalgo Nolasco
 
Taller n1 base de datos 2010
Taller n1 base de datos 2010Taller n1 base de datos 2010
Taller n1 base de datos 2010
alvaro hernan
 
Taller n1 base de datos 2010
Taller n1 base de datos 2010Taller n1 base de datos 2010
Taller n1 base de datos 2010
alvaro hernan
 
Inteligencia artificial-y-sistemas-expertos
Inteligencia artificial-y-sistemas-expertosInteligencia artificial-y-sistemas-expertos
Inteligencia artificial-y-sistemas-expertos
acostawz
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Alfredo Chavez
 
Diferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetosDiferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetos
maribel
 
Diferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetosDiferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetos
maribel
 

Similaire à Principios S.O.L.I.D. en Sistemas de Información Distribuidos (20)

Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Bases de datos orientados a objetos
Bases de datos orientados a objetosBases de datos orientados a objetos
Bases de datos orientados a objetos
 
LA IA revolucionaria.pptx
LA IA revolucionaria.pptxLA IA revolucionaria.pptx
LA IA revolucionaria.pptx
 
Deconstrucción de SOLID
Deconstrucción de SOLIDDeconstrucción de SOLID
Deconstrucción de SOLID
 
Presentación1
Presentación1Presentación1
Presentación1
 
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOSLENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
LENGUAJE DE PROGRAMACIÓN ORIENTADA A OBJETOS
 
Uml
UmlUml
Uml
 
Taller n1 base de datos 2010
Taller n1 base de datos 2010Taller n1 base de datos 2010
Taller n1 base de datos 2010
 
Taller n1 base de datos 2010
Taller n1 base de datos 2010Taller n1 base de datos 2010
Taller n1 base de datos 2010
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Escuela superior de cd sahagun plantilla2
Escuela superior de cd sahagun plantilla2Escuela superior de cd sahagun plantilla2
Escuela superior de cd sahagun plantilla2
 
Inteligencia artificial-y-sistemas-expertos
Inteligencia artificial-y-sistemas-expertosInteligencia artificial-y-sistemas-expertos
Inteligencia artificial-y-sistemas-expertos
 
Act 3
Act 3Act 3
Act 3
 
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012Retos en la Adopción del Refactoring -  Junta General del MexALN 28/06/2012
Retos en la Adopción del Refactoring - Junta General del MexALN 28/06/2012
 
Sistemas basados en el conocimiento
Sistemas basados en el conocimiento Sistemas basados en el conocimiento
Sistemas basados en el conocimiento
 
Escuela Superior de Cd Sahagun plantilla2.pptx
Escuela Superior de Cd Sahagun plantilla2.pptxEscuela Superior de Cd Sahagun plantilla2.pptx
Escuela Superior de Cd Sahagun plantilla2.pptx
 
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?Introducción  a la Ingeniería de Software:Qué es un Buen Sistema?
Introducción a la Ingeniería de Software:Qué es un Buen Sistema?
 
AULA TI
 AULA TI AULA TI
AULA TI
 
Diferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetosDiferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetos
 
Diferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetosDiferencias entre análisis y diseño estructural y orientado a objetos
Diferencias entre análisis y diseño estructural y orientado a objetos
 

Dernier

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Dernier (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Principios S.O.L.I.D. en Sistemas de Información Distribuidos

  • 1. Principios S.O.L.I.D. para sistemas de información Usando S.O.L.I.D. en un nivel superior de abstracción Agile Canarias Lightning Talks - 31-01-2012 Tanausú Cerdeña Hernández (@chozero)
  • 2. Recordatorio: S.O.L.I.D. 5 principios básicos de programación orientada a objetos y diseño. Gracias, Uncle Bob*! *Robert C. Martin
  • 3. Objetivo principios S.O.L.I.D. Crear programas más sencillos de mantener y extender. (Programación Orientada a Objetos)
  • 4. ¿Aplicables a otro nivel de abstracción? Hagamos un ejercicio: :s/objeto/sistema/ Sustituyamos “objeto” por “sistema” en la definición de los principios y veamos si podemos aplicarlos a sistemas de información distribuidos.
  • 5. ¿Sistemas de información distribuidos? Para esta charla, sistemas distribuidos que se comunican mediante HTTP. Por ejemplo: • Instagram • Comunio • LiveTeamApp • Geosophic* • … *(cuña publicitaria)
  • 6. 1. Single Responsibility Principle “Un sistema debería tener una única responsabilidad” Auth Highscores Logger FB Reverse Persistence connector geocoder
  • 7. 2. Open/closed principle “Los sistemas de software deberían ser abiertos para extender pero cerrados para modificar” Meh. Vive le Open Source!
  • 8. 2. Open/closed principle “Los sistemas de software deberían ser abiertos para extender pero cerrados para modificar” ¿Y si lo aplicamos a las APIs que comunican sistemas?
  • 9. 3. Liskov Substitution Principle “Los subsistemas de un sistema deberían ser sustituibles por instancias de sus subtipos sin alterar el correcto funcionamiento del sistema” Amazon S3 API MySQL #Mega
  • 10. 4. Interface Segregation Principle “Es mejor tener muchas interfaces de cliente específicas que una interfaz de propósito general” Tabla Periódica de las APIs de Google
  • 11. 5. Dependency Inversion Principle “Un sistema debería depender de abstracciones, no de concreciones” Amazon S3 image-store.instagram.com MySQL #Mega
  • 12. Conclusiones • Deberíamos tener un conjunto de principios para el diseño de sistemas. • S.O.L.I.D. es un buen comienzo • Muy necesario en sistemas de vida larga (admón. Pública, grandes compañías, banca,…) • Nuestros nietos programadores lo agradecerán.