Principios #SOLID
#CodeRetreatNEA #GDCR2013
Jose A. Fernandez
@fernandezja
http://about.me/fernandezja
#SOLIDifiquemos el #CodeRetreat #Corrientes
S.O.L.I.D. ¿?
Resumen
#Programación Orientada a Objetos
#Dolor
#Mas dolor… con Nauseas
#Formación profesional
#Experiencia
#Compartir
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”
Desarrollemos en Colectivo
no en Bicicleta
Bueno si! Pero S.O.L.I.D.?
•Single Responsibility Principle
Responsabilidad Única
•Open-Closed Principle
Abierto/Cerrado
•Liskov Substitution Principle
Substitución de Liskov
•Interface Segregation Principle
Segreación de Intefaz
•Dependency Inversion Principle
Inversion de Dependencia
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)
http://blogs.msdn.com/b/cdndevs/archive/2009/07/15/the-solid-principles-explained-with-motivational-posters.aspx
Principios? Mandatorios?
•Un poco chocante?
•Lineamientos
•Facilitadores
•Sugerencias
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…)
Principio de Sustitución de Liskov
• Los subtipos deben ser sustituibles por sus tipos base
JugadorDeFutbol
Delantero MedioCampo Defensa Arquero Suplente
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
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?
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
Gracias!
#SOLIDifiquemos el
#CodeRetreat
#Corrientes
#CodeRetreatNEA #GDCR2013
Jose A. Fernandez
@fernandezja
http://about.me/fernandezja

Principios SOLID "SOLIDifiquemos el CodeRetreat en Corrientes"