deconstrucción de solid
TRANSCRIPT
![Page 1: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/1.jpg)
Deconstrucción deSOLID
![Page 2: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/2.jpg)
![Page 3: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/4.jpg)
Al principio fue la programación
![Page 5: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/5.jpg)
PROGRAMACIÓN ORIENTADA A OBJETOS Abstracción Encapsulamiento Herencia Cohesión Polimorfismo
![Page 6: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/6.jpg)
S.O.L.I.D.
![Page 7: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/7.jpg)
![Page 8: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/8.jpg)
Los 5 principios
Single responsibility
Open-closed
Liskov substitution
Interface segregation
Dependency inversion
![Page 9: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/9.jpg)
![Page 10: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/10.jpg)
Single Responsibility PrincipleUna clase debe tener una, y solo una, razón para cambiar
![Page 11: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/11.jpg)
Single Responsibility Principle
![Page 12: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/12.jpg)
Single Responsibility Principle
![Page 13: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/14.jpg)
![Page 15: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/16.jpg)
Strategy Pattern
![Page 17: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/17.jpg)
Open-Close Principle
![Page 18: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/19.jpg)
![Page 20: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/20.jpg)
Liskov Substitution PrincipleLas clases derivadas, deben poder ser sustituidas por su clases base
![Page 21: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/21.jpg)
Liskov Substitution Principle
![Page 22: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/22.jpg)
Liskov Substitution Principle
![Page 23: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/24.jpg)
![Page 25: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/26.jpg)
Interface Segregation Principle
![Page 27: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/27.jpg)
Interface Segregation Principle
![Page 28: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/28.jpg)
Interface Segregation Principle
![Page 29: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/30.jpg)
![Page 31: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/31.jpg)
Dependency Inversion PrincipleDepender de las abstracciones no de las concreciones
![Page 32: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/32.jpg)
Dependency Injection Pattern
![Page 33: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/33.jpg)
Dependency Inversion Principle
![Page 34: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/34.jpg)
PERO…• Generamos una dependencia: los framworks de DI• No diseñemos para reusar componentes: diseñemos para usarlos
![Page 35: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/35.jpg)
¡¡¡Muchas Gracias!!!Drag picture to placeholder or click icon to add
![Page 36: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/36.jpg)
![Page 37: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/37.jpg)
Mejor usa estos 3 principios Drag picture to placeholder or click icon to add
![Page 38: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/38.jpg)
![Page 39: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/39.jpg)
Don’t Repeat Yourselffor(int i = 0; i< 100; i++) Console.WriteLine(“I’ll not repeat myself”);
![Page 40: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/40.jpg)
![Page 41: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/41.jpg)
You Ain’t Gonna Need ItTenemos que ser capaces de adaptarnos rápidamente al cambio, no preverlo
![Page 42: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/42.jpg)
![Page 43: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/44.jpg)
EN RESUMEN…Drag picture to placeholder or click icon to add
![Page 45: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/45.jpg)
![Page 46: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/47.jpg)
DEBATE
![Page 48: Deconstrucción de SOLID](https://reader030.vdocuments.mx/reader030/viewer/2022021418/58d0a3f41a28abbd1a8b48e9/html5/thumbnails/48.jpg)
TOKIOTA, the Microsoft leading partner for innovative technology solutions, empowering our customers while taking care of our people.