principios solid "solidifiquemos el coderetreat en corrientes"
DESCRIPTION
Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes" #CodeRetreatNEA #GDCR2013 14/Diciembre/2013 Jose A. Fernandez @fernandezja http://about.me/fernandezjaTRANSCRIPT
![Page 1: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/1.jpg)
Principios #SOLID
#CodeRetreatNEA #GDCR2013
Jose A. Fernandez @fernandezja
http://about.me/fernandezja
#SOLIDifiquemos el #CodeRetreat #Corrientes
![Page 2: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/2.jpg)
S.O.L.I.D. ¿?
![Page 3: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/3.jpg)
Resumen
#Programación Orientada a Objetos#Dolor#Mas dolor… con Nauseas#Formación profesional#Experiencia#Compartir
![Page 4: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/4.jpg)
Que hacemos? Que tenemos que hacer hoy?•Escribir Código, Programar? DISEÑAR•Escribir código “como homo sapiens” • Incluso generarlo…
•Problemas/inconvenientes•Escribirlo•Entenderlo (ni siquiera tocarlo)
•Mantenerlo•Trabajar con otros “homo sapiens”
![Page 5: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/5.jpg)
Desarrollemos en Colectivo no en Bicicleta
![Page 6: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/6.jpg)
Bueno si! Pero S.O.L.I.D.?
• Single Responsibility PrincipleResponsabilidad Única
•Open-Closed PrincipleAbierto/Cerrado
• Liskov Substitution PrincipleSubstitución de Liskov
• Interface Segregation PrincipleSegreación de Intefaz
•Dependency Inversion PrincipleInversion de Dependencia
![Page 7: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/7.jpg)
Principio de Responsabilidad Única
• Responsabilidad?
• Cohesión y Acoplamiento…
• Que sus servicios deben estar alineados a dicha responsabilidad
• …Una razón para cambiar• Acoplar por el simple hecho que se parecen
• Como nos damos cuenta?
• Comentarios, agrupamiento
• Utilización de estado interno (agrupado)
![Page 8: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/8.jpg)
http://blogs.msdn.com/b/cdndevs/archive/2009/07/15/the-solid-principles-explained-with-motivational-posters.aspx
![Page 9: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/9.jpg)
Principios? Mandatorios?
•Un poco chocante?• Lineamientos• Facilitadores• Sugerencias
![Page 10: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/10.jpg)
Principio de Abierto/Cerrado
•Nuestros artefactos de software (clases, módulos, funciones) deben estar Abiertos a la extensión, cerrado para la modificación
• Tratar de realizar por diseño• Herencia (Especificar, Generalizar)• Polimorfismo (próximo principio…)
![Page 11: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/11.jpg)
![Page 12: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/12.jpg)
Principio de Sustitución de Liskov
• Los subtipos deben ser sustituibles por sus tipos base
JugadorDeFutbol
Delantero MedioCampo Defensa Arquero Suplente
![Page 13: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/13.jpg)
![Page 14: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/14.jpg)
Segreación de Intefaz
• Establece que los clientes no deberían verse obligados a depender de los métodos que no utilizan• Pero si depender de sus abstracciones
• Separación de métodos (agrupamiento)• No por cantidad sino por utilización de clientes
![Page 15: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/15.jpg)
![Page 16: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/16.jpg)
Principio de Inversión de Dependencia
• Módulos de alto nivel no depender de módulos de bajo nivel
• Abstracción• En POO: Interfaces
• Preguntas• N Layers?
• Servicios?
![Page 17: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/17.jpg)
![Page 18: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/18.jpg)
Síntesis#Dolor
#Nauseas
#Formación profesional
#Experiencia
#Compartir
• SOLID
• Patrones de Diseño de Software
• Metodología de Desarrollo
• Desarrollemos en Colectivo no en Bicicleta
![Page 19: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"](https://reader033.vdocuments.site/reader033/viewer/2022052910/559cc5361a28abca368b4585/html5/thumbnails/19.jpg)
Gracias!
#SOLIDifiquemos el #CodeRetreat#Corrientes
#CodeRetreatNEA #GDCR2013
Jose A. Fernandez @fernandezja
http://about.me/fernandezja