Deconstrucción de SOLID

48
Deconstrucción de SOLID

Transcript of Deconstrucción de SOLID

Page 1: Deconstrucción de SOLID

Deconstrucción deSOLID

Page 2: Deconstrucción de SOLID
Page 3: Deconstrucción de SOLID

AUDIENCIA• Ya conozco SOLID y lo tengo en cuenta cada vez que escribo una línea

de código – Esta charla es para ti

• Sé qué es SOLID y lo voy aplicando cuando puedo – Aplica SOLID

• No tengo ni idea de qué es SOLID – Quizá esta charla no sea para ti

Page 4: Deconstrucción de SOLID

Al principio fue la programación

Page 5: Deconstrucción de SOLID

PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción Encapsulamiento Herencia Cohesión Polimorfismo

Page 6: Deconstrucción de SOLID

S.O.L.I.D.

Page 7: Deconstrucción de SOLID
Page 8: Deconstrucción de SOLID

Los 5 principios

Single responsibility

Open-closed

Liskov substitution

Interface segregation

Dependency inversion

Page 9: Deconstrucción de SOLID
Page 10: Deconstrucción de SOLID

Single Responsibility PrincipleUna clase debe tener una, y solo una, razón para cambiar

Page 11: Deconstrucción de SOLID

Single Responsibility Principle

Page 12: Deconstrucción de SOLID

Single Responsibility Principle

Page 13: Deconstrucción de SOLID

PERO…• ¿Qué es una responsabilidad única exactamente?• ¿Como puedo predecir qué código puede cambiar?• ¿Tener muchas clases muy pequeñas es siempre mejor que una sola

más grande?

Page 14: Deconstrucción de SOLID
Page 15: Deconstrucción de SOLID

Open-Close PrincipleDebes ser capaz de extender el comportamiento de una clase sin necesidad de modificarla (abierto a extensión, cerrado a modificación)

Page 16: Deconstrucción de SOLID

Strategy Pattern

Page 17: Deconstrucción de SOLID

Open-Close Principle

Page 18: Deconstrucción de SOLID

PERO…• Cuando un requisito del sistema cambia, significa que tu código no es

válido y tienes que reemplazarlo

Page 19: Deconstrucción de SOLID
Page 20: Deconstrucción de SOLID

Liskov Substitution PrincipleLas clases derivadas, deben poder ser sustituidas por su clases base

Page 21: Deconstrucción de SOLID

Liskov Substitution Principle

Page 23: Deconstrucción de SOLID

PERO…• La composición es más fácil que la herencia• No hay una forma mejor de gastar el tiempo que escribir un gran

código que nunca va a ser usado

Page 24: Deconstrucción de SOLID
Page 25: Deconstrucción de SOLID

Interface Segregation PrincipleDesgranar las interfaces lo más fino posible,

para que sean lo más específicas posible

Page 26: Deconstrucción de SOLID

Interface Segregation Principle

Page 29: Deconstrucción de SOLID

PERO…• No dice nada, prácticamente cualquier cosa es mejor que un objeto

mega grande• Muchas interfaces con solo un método: ¿esto es bueno?• Quizá haya que basarse en “roles” más que en interfaces…

Page 30: Deconstrucción de SOLID
Page 31: Deconstrucción de SOLID

Dependency Inversion PrincipleDepender de las abstracciones no de las concreciones

Page 32: Deconstrucción de SOLID

Dependency Injection Pattern

Page 33: Deconstrucción de SOLID

Dependency Inversion Principle

Page 34: Deconstrucción de SOLID

PERO…• Generamos una dependencia: los framworks de DI• No diseñemos para reusar componentes: diseñemos para usarlos

Page 35: Deconstrucción de SOLID

¡¡¡Muchas Gracias!!!Drag picture to placeholder or click icon to add

Page 36: Deconstrucción de SOLID
Page 37: Deconstrucción de SOLID

Mejor usa estos 3 principios Drag picture to placeholder or click icon to add

Page 38: Deconstrucción de SOLID
Page 39: Deconstrucción de SOLID

Don’t Repeat Yourselffor(int i = 0; i< 100; i++) Console.WriteLine(“I’ll not repeat myself”);

Page 40: Deconstrucción de SOLID
Page 41: Deconstrucción de SOLID

You Ain’t Gonna Need ItTenemos que ser capaces de adaptarnos rápidamente al cambio, no preverlo

Page 42: Deconstrucción de SOLID
Page 43: Deconstrucción de SOLID

Don’t Reinvent The WheelSi ya existe, se adapta a nuestras necesidades, esta probado y funciona… ¿por qué no utilizarlo?

Page 44: Deconstrucción de SOLID

EN RESUMEN…Drag picture to placeholder or click icon to add

Page 45: Deconstrucción de SOLID
Page 46: Deconstrucción de SOLID

Keep It Simple, StupidSimple no es lo mismo que programar pocoEs muy difícil hacer cosas simplesSé pragmático

Page 47: Deconstrucción de SOLID

DEBATE

Page 48: Deconstrucción de SOLID

TOKIOTA, the Microsoft leading partner for innovative technology solutions, empowering our customers while taking care of our people.