level up your skills
DESCRIPTION
Programar es difícil, y hacer buen código todavía más. Por suerte para nosotros, gente como Robert C. Martin, Bertrand Meyer, Barbara Liskov o los miembros de GoF nos han dado las herramientas como los patrones de diseño y los principios SOLID que hacen nuestra tarea más sencilla. Con su ayuda podremos pasar de hacer código que simplemente funciona, a aplicaciones robustas y mantenibles que serán fáciles de modificar y en las que será más difícil que haya bugs gracias a los tests unitarios. Subiremos un nivel (o dos) la calidad de nuestro código y veremos cómo dejamos atrás la frustración que provoca hacer código que no se entiende.TRANSCRIPT
![Page 1: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/1.jpg)
Pasiona Consulting
Level up your skills
BARCELONA DEVELOPERS CONFERENCE 20126 dic – 7 dic – 8 dic
![Page 2: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/2.jpg)
www.pasiona.com(+34) 669 333 [email protected]
@pasiona BarcelonaPujades 350, 10ª planta
08019 · Barcelona
BilbaoGran Vía 19-21, 2ª planta
48008 · Bilbao
Londres1 Northumberland Avenue
London · WC2N 5BW
MadridPinar 5,
28006 · Madrid
![Page 3: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/3.jpg)
Conocimientoadquirido a través de la realización de proyectos, formación e innovación tecnológica
Innovaciónligada a la mejora continua y basadaen las nuevas oportunidades tecnológicas
Tecnologíasoluciones a cada una de las necesidadesempresariales que se platean en cada ámbito
Valores humanosguía de lo que hacemos y pretendemosque nos enseña y nos conduce día a día
Pasiónsomos grandes entusiastas de todo aquello que creamos y vemos crecer
Experienciao la garantía de la habilidad derivada de años de vivencias y observación
Microsoftsocio 100% alineado partner 100% especializado
Desarrollocapacidad para realizar proyectos deámbito tecnológico con un fin de mejora
Especializaciónofrecemos soluciones a medida con las mejores herramientas tecnológicas
Qué es
![Page 4: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/4.jpg)
SocialMedia
Servicios profesionales
Consultoría Proyectos
Innovación Azure
Formación
Auditoría
Servicios
![Page 5: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/5.jpg)
![Page 6: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/6.jpg)
@techdencias
@pasiona
#BCD12
@quiqu3@pbousan
@fernandoescolar
![Page 7: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/7.jpg)
Agenda
Programación Orientada a Objetos
Refactoring
SOLID
[T]DD
![Page 8: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/8.jpg)
POO
Abstración Encapsulamiento Herencia Cohesión Polimorfismo
![Page 9: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/9.jpg)
![Page 10: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/10.jpg)
Refactoring Código duplicado Métodos largos Clases largas Atributos temporales Código espagueti Jerarquías de herencia paralelas
![Page 11: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/11.jpg)
![Page 12: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/12.jpg)
5 principios básicos
Single responsibility Open-closed Liskov substitution Interface segregation Dependency inversion
![Page 13: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/13.jpg)
![Page 14: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/14.jpg)
Single Responsibility PrincipleUna clase debe tener una, y solo una, razón para cambiar
![Page 15: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/15.jpg)
Single Responsibility Principle
![Page 16: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/16.jpg)
Single Responsibility Principle
![Page 17: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/17.jpg)
![Page 18: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/18.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 19: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/19.jpg)
Strategy Pattern
![Page 20: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/20.jpg)
Open-Close Principle
![Page 21: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/21.jpg)
![Page 22: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/22.jpg)
Liskov Substitution PrincipleLas clases derivadas, deben poder ser sustituidas por
su clases base
![Page 23: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/23.jpg)
Liskov Substitution Principle
![Page 24: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/24.jpg)
Liskov Substitution Principle
![Page 25: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/25.jpg)
![Page 26: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/26.jpg)
Interface Segregation PrincipleDesgranar las interfaces lo más fino posible,
para que sean lo más específicas posible
![Page 27: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/27.jpg)
Interface Segregation Principle
![Page 28: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/28.jpg)
Interface Segregation Principle
![Page 29: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/29.jpg)
Interface Segregation Principle
![Page 30: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/30.jpg)
![Page 31: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/31.jpg)
Dependency Inversion PrincipleDepender de las abstracciones no de las concreciones
![Page 32: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/32.jpg)
Dependency Inversion Principle
![Page 33: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/33.jpg)
Dependency Inversion Principle
![Page 34: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/34.jpg)
![Page 35: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/35.jpg)
![Page 36: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/36.jpg)
Keep It Simple, StupidSimple no es lo mismo que programar poco
![Page 37: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/37.jpg)
![Page 38: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/38.jpg)
Don’t Repeat Yourselffor(int i = 0; i< 100; i++)
Console.WriteLine(“I’ll not repeat myself”);
![Page 39: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/39.jpg)
![Page 40: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/40.jpg)
You Ain’t Gonna Need It
Tenemos que ser capaces de adaptarnos
rápidamente al cambio, no preverlo
![Page 41: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/41.jpg)
![Page 42: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/42.jpg)
Don’t Reinvent The Wheel
Si ya existe, se adapta a nuestras necesidades,
esta probado y funciona… ¿por qué no utilizarlo?
![Page 43: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/43.jpg)
Quique Martínez@quiqu3 Q&A
Fernando Escolar@fernandoescolar
Pablo Bouzada@pbousan
![Page 44: Level up your skills](https://reader036.vdocuments.mx/reader036/viewer/2022062303/55618b69d8b42a91778b4c43/html5/thumbnails/44.jpg)
BARCELONA DEVELOPERS CONFERENCE 2012
| 6 dic – 7 dic – 8 dic