principios solid "solidifiquemos el coderetreat en corrientes"

19
Principios #SOLID #CodeRetreatNEA #GDCR2013 Jose A. Fernandez @fernandezja http://about.me/fernandezja #SOLIDifiquemos el #CodeRetreat #Corrientes

Upload: jose-a-fernandez

Post on 08-Jul-2015

107 views

Category:

Software


2 download

DESCRIPTION

Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes" #CodeRetreatNEA #GDCR2013 14/Diciembre/2013 Jose A. Fernandez @fernandezja http://about.me/fernandezja

TRANSCRIPT

Page 1: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"

S.O.L.I.D. ¿?

Page 3: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"

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"

Desarrollemos en Colectivo no en Bicicleta

Page 6: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"

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"

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"

Principios? Mandatorios?

•Un poco chocante?• Lineamientos• Facilitadores• Sugerencias

Page 10: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"
Page 12: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"
Page 14: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"
Page 16: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"
Page 18: Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"

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"

Gracias!

#SOLIDifiquemos el #CodeRetreat#Corrientes

#CodeRetreatNEA #GDCR2013

Jose A. Fernandez @fernandezja

http://about.me/fernandezja