Deconstrucción de SOLID

Post on 12-Apr-2017

32 views 0 download

Transcript of Deconstrucción de SOLID

Deconstrucción deSOLID

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

Al principio fue la programación

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

S.O.L.I.D.

Los 5 principios

Single responsibility

Open-closed

Liskov substitution

Interface segregation

Dependency inversion

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

Single Responsibility Principle

Single Responsibility Principle

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?

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

Strategy Pattern

Open-Close Principle

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

válido y tienes que reemplazarlo

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

Liskov Substitution Principle

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

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

para que sean lo más específicas posible

Interface Segregation Principle

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…

Dependency Inversion PrincipleDepender de las abstracciones no de las concreciones

Dependency Injection Pattern

Dependency Inversion Principle

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

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

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

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

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

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

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

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

DEBATE

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