SlideShare una empresa de Scribd logo
1 de 30
Principios de diseño
SOLID
Manuel Zapata
CaliJS – Octubre 2018
Hola, soy Manuel.
Desarrollador y arquitecto de software.
Co-organizador de Xamarin Cali.
Blogger y YouTuber.
Educador por pasión.
Website: https://manuelzapata.co
Mis redes
SoyManuelZapata
@ManuelZapata
ManuelZapata
Les presento al tío Bob
Principio de
única
responsabilidad
Single
responsability
principle (SRP)
Un módulo debería tener una y
solo una razón para cambiar
Veamos algo de código.
Principio de
abierto cerrado
Open Closed
Principle (OCP)
Un módulo debería estar
cerrado a modificaciones y
abierto a extensiones
Veamos algo de código.
Principio de
sustitución de
Liskov
Liskov Substitution
Principle (LSP)
Hijo de tigre sale pintado
Debería ser posible sustituir
una clase padre con una clase
hija, sin que hayan
comportamientos no deseados.
ProgramaClasePadre
ClaseHija
Principio de
segregación de
interfaces
Interface
Segregation
Principle (ISP)
Los clientes no deberían
depender de métodos que
no utilicen.
UsuarioUno UsuarioDos UsuarioTres
Principal
+ métodoUno
+ métodoDos
+ métodoTres
UsuarioUno UsuarioDos UsuarioTres
PrincipalDos
+ métodoDos
PrincipalUno
+ métodoUno
PrincipalTres
+ métodoTres
Pero JavaScript no tiene interfaces
Pero Flow y TypeScript, sí.
No dependas de lo que no
necesites.
Principio de
inversión de
dependencias
Dependency
Inversion Principle
(DIP)
Los módulos de alto nivel no
deberían depender de los
módulos de bajo nivel.
Primera idea
Las abstracciones no
deberían depender de los
detalles
Segunda idea
Inyección de dependencias
Design smells
• Rigidez.
• Fragilidad.
• Viscosidad.
• Complejidad innecesaria.
• Repetición innecesaria.
• Opacidad.
https://youtu.be/k9nvQemH9f4
https://manuelzapata.co/p
rin
Mini curso de principios de diseño
Si quieres aprender más de diseño y
arquitectura de software…
SoyManuelZapata
@ManuelZapata
ManuelZapata
Muchas gracias.

Más contenido relacionado

La actualidad más candente

Embracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with FlywayEmbracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with FlywayRed Gate Software
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorCar_00_01
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWAREFreddy Aguilar
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en CapasHelenSaravia
 
Diagramas estados
Diagramas estadosDiagramas estados
Diagramas estadosloco8888
 
RUP - Fase de Elaboración
RUP - Fase de ElaboraciónRUP - Fase de Elaboración
RUP - Fase de ElaboraciónAdrian González
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetesMoises Cruz
 
Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7UTN-FRT Tucumán Argentina
 
Presentaciòn modelos para el desarrollo del software
Presentaciòn modelos para el desarrollo del softwarePresentaciòn modelos para el desarrollo del software
Presentaciòn modelos para el desarrollo del softwarepaoaboytes
 
metodologia agil.ppt
metodologia agil.pptmetodologia agil.ppt
metodologia agil.pptbrian roa
 
Tecnicas esquemas indexados
Tecnicas esquemas indexadosTecnicas esquemas indexados
Tecnicas esquemas indexadosGiovani Ramirez
 
Trabajo 5 Semestre Linux
Trabajo 5 Semestre LinuxTrabajo 5 Semestre Linux
Trabajo 5 Semestre Linuxguestec0c31
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q LOlaya Molina
 

La actualidad más candente (20)

Embracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with FlywayEmbracing DevOps through database migrations with Flyway
Embracing DevOps through database migrations with Flyway
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Diagrama de estado
Diagrama de estadoDiagrama de estado
Diagrama de estado
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
 
Metodologia rup parte 1
Metodologia rup parte 1Metodologia rup parte 1
Metodologia rup parte 1
 
Arquitectura en Capas
Arquitectura en CapasArquitectura en Capas
Arquitectura en Capas
 
Candados bd
Candados bdCandados bd
Candados bd
 
Uml
UmlUml
Uml
 
Diagramas estados
Diagramas estadosDiagramas estados
Diagramas estados
 
RUP - Fase de Elaboración
RUP - Fase de ElaboraciónRUP - Fase de Elaboración
RUP - Fase de Elaboración
 
Diagramas de paquetes
Diagramas de paquetesDiagramas de paquetes
Diagramas de paquetes
 
Sistema Jerarquico
Sistema JerarquicoSistema Jerarquico
Sistema Jerarquico
 
Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7Lenguajes Regulares y Autómatas Finitos - Clase 7
Lenguajes Regulares y Autómatas Finitos - Clase 7
 
Presentaciòn modelos para el desarrollo del software
Presentaciòn modelos para el desarrollo del softwarePresentaciòn modelos para el desarrollo del software
Presentaciòn modelos para el desarrollo del software
 
metodologia agil.ppt
metodologia agil.pptmetodologia agil.ppt
metodologia agil.ppt
 
Tecnicas esquemas indexados
Tecnicas esquemas indexadosTecnicas esquemas indexados
Tecnicas esquemas indexados
 
ADMINISTRACIÓN DE LA SEGURIDAD EN SQL SERVER
ADMINISTRACIÓN DE LA SEGURIDAD EN SQL SERVERADMINISTRACIÓN DE LA SEGURIDAD EN SQL SERVER
ADMINISTRACIÓN DE LA SEGURIDAD EN SQL SERVER
 
Trabajo 5 Semestre Linux
Trabajo 5 Semestre LinuxTrabajo 5 Semestre Linux
Trabajo 5 Semestre Linux
 
Instrucciones Transact S Q L
Instrucciones Transact  S Q LInstrucciones Transact  S Q L
Instrucciones Transact S Q L
 
Prueba de Caja Blanca
Prueba de Caja BlancaPrueba de Caja Blanca
Prueba de Caja Blanca
 

Similar a Principios de diseño SOLID

Spring Inyección De Dependencias
Spring Inyección De DependenciasSpring Inyección De Dependencias
Spring Inyección De Dependenciasjose diaz
 
Principios S.O.L.I.D. en Sistemas de Información Distribuidos
Principios S.O.L.I.D. en Sistemas de Información DistribuidosPrincipios S.O.L.I.D. en Sistemas de Información Distribuidos
Principios S.O.L.I.D. en Sistemas de Información DistribuidosTanausu Cerdeña
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP Aprende PHP
 
Presentación open closed principle
Presentación open closed principlePresentación open closed principle
Presentación open closed principleAutentia
 
Magia con Drupal
Magia con DrupalMagia con Drupal
Magia con Drupalmbavio
 
Clean code 10-11
Clean code 10-11Clean code 10-11
Clean code 10-11540deg
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup
 
Como implementar MVP sin morir en el intento
Como implementar MVP sin morir en el intentoComo implementar MVP sin morir en el intento
Como implementar MVP sin morir en el intentoDavid Luque Quintana
 
PSD to HTML (Drupal) - Drupal Day Spain 2017 Cáceres
PSD to HTML (Drupal) - Drupal Day Spain 2017 CáceresPSD to HTML (Drupal) - Drupal Day Spain 2017 Cáceres
PSD to HTML (Drupal) - Drupal Day Spain 2017 CáceresLa Drupalera
 
Taller SOLID Refactor
Taller SOLID RefactorTaller SOLID Refactor
Taller SOLID RefactorAgile Spain
 
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...Chistian Hernandez
 
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...Tania Tellez
 
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosJose E. Rodriguez Huerta
 

Similar a Principios de diseño SOLID (20)

SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Deconstrucción de SOLID
Deconstrucción de SOLIDDeconstrucción de SOLID
Deconstrucción de SOLID
 
Developing for Android (The movie)
Developing for Android (The movie)Developing for Android (The movie)
Developing for Android (The movie)
 
SOLID para CatDotNet
SOLID   para CatDotNetSOLID   para CatDotNet
SOLID para CatDotNet
 
Spring Inyección De Dependencias
Spring Inyección De DependenciasSpring Inyección De Dependencias
Spring Inyección De Dependencias
 
Principios S.O.L.I.D. en Sistemas de Información Distribuidos
Principios S.O.L.I.D. en Sistemas de Información DistribuidosPrincipios S.O.L.I.D. en Sistemas de Información Distribuidos
Principios S.O.L.I.D. en Sistemas de Información Distribuidos
 
Introducción a los Frameworks PHP
Introducción a los Frameworks PHP  Introducción a los Frameworks PHP
Introducción a los Frameworks PHP
 
Presentación open closed principle
Presentación open closed principlePresentación open closed principle
Presentación open closed principle
 
Magia con Drupal
Magia con DrupalMagia con Drupal
Magia con Drupal
 
Clean code 10-11
Clean code 10-11Clean code 10-11
Clean code 10-11
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
 
Como implementar MVP sin morir en el intento
Como implementar MVP sin morir en el intentoComo implementar MVP sin morir en el intento
Como implementar MVP sin morir en el intento
 
Bootcamp Javascript Online
Bootcamp Javascript OnlineBootcamp Javascript Online
Bootcamp Javascript Online
 
SEO para Drupal
SEO para DrupalSEO para Drupal
SEO para Drupal
 
PSD to HTML (Drupal) - Drupal Day Spain 2017 Cáceres
PSD to HTML (Drupal) - Drupal Day Spain 2017 CáceresPSD to HTML (Drupal) - Drupal Day Spain 2017 Cáceres
PSD to HTML (Drupal) - Drupal Day Spain 2017 Cáceres
 
Taller SOLID Refactor
Taller SOLID RefactorTaller SOLID Refactor
Taller SOLID Refactor
 
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
 
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
Prueba Corta: Video -Vida Real-Definicion de objetos, estado, comportamiento ...
 
Principios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a ObjetosPrincipios SOLID de Diseño Orientado a Objetos
Principios SOLID de Diseño Orientado a Objetos
 

Último

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 

Último (20)

FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 

Principios de diseño SOLID

Notas del editor

  1. Módulo más malinterpretado. Un módulo debería tener una, y solo una, razón para cambiar.  NO significa que debería hacer una sola cosa. Más difícil reusar. Dificultad de mantenimiento.
  2. Un artefacto software debería estar abierto para ser extendido, pero cerrado para ser modificado.   Es un elemento crucial detrás de la arquitectura de muchos sistemas.   El objetivo es hacer el sistema fácil de extender sin que los cambios sean de alto impacto.   Esta extensión no solo se hace a través de herencia, sino que también se puede lograr mediante patrones de diseño.
  3. Va mucho más allá de la herencia.   Existencia herencia no significa que el principio se cumpla.   También aplica a otras cosas que no son herencia. Servicios REST mismas firmas de métodos.
  4. No necesariamente hablamos de interfaces. También hablamos de clases base, protocolos o incluso firmas de métodos.
  5. Por ejemplo, métodos con muchos parámetros.
  6. Deberían depender de abstracciones.
  7. Primer mal olor: rigidez   La aplicación es difícil de cambiar, incluso para cosas muy pequeñas.   El diseño es dificil de cambiar.   Segundo mal olor: fragilidad   La tendencia de un programa de dañarse en múltiples sitios, cuando un único cambio se hace.   El diseño se daña muy fácil.   Tercer mal olor: inmovilidad   Es muy difícil separar el sistema en componentes que puedan ser reusados en otros sistemas.   El diseño es difícil de reusar.   Cuarto mal olor: viscosidad   Los cambios que preservan el diseño son más difíciles de hacer que los machetes.   Hacer las cosas mal es más fácil que hacer las cosas bien.   Quinto olor: complejidad innecesaria   El diseño es más complejo de lo necesario.   Hay un exceso de diseño   Sexto olor: repetición innecesaria   Hay estructuras que se repiten.   En mi último video hablé bastante sobre copiar y pegar.   Séptimo olor: opacidad   Código escrito de manera clara y expresiva   VS   Código escrito de manera extraña y confusa.