44
Pasiona Consulting Level up your skills BARCELONA DEVELOPERS CONFERENCE 2012 6 dic – 7 dic – 8 dic

Level up your skills

Embed Size (px)

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.

Citation preview

Page 1: Level up your skills

Pasiona Consulting

Level up your skills

BARCELONA DEVELOPERS CONFERENCE 20126 dic – 7 dic – 8 dic

Page 2: Level up your skills

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

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

SocialMedia

Servicios profesionales

Consultoría Proyectos

Innovación Azure

Formación

Auditoría

Servicios

Page 5: Level up your skills
Page 6: Level up your skills

@techdencias

@pasiona

#BCD12

@quiqu3@pbousan

@fernandoescolar

Page 7: Level up your skills

Agenda

Programación Orientada a Objetos

Refactoring

SOLID

[T]DD

Page 8: Level up your skills

POO

Abstración Encapsulamiento Herencia Cohesión Polimorfismo

Page 9: Level up your skills
Page 10: Level up your skills

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
Page 12: Level up your skills

5 principios básicos

Single responsibility Open-closed Liskov substitution Interface segregation Dependency inversion

Page 13: Level up your skills
Page 14: Level up your skills

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

Page 15: Level up your skills

Single Responsibility Principle

Page 16: Level up your skills

Single Responsibility Principle

Page 17: Level up your skills
Page 18: Level up your skills

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

Strategy Pattern

Page 20: Level up your skills

Open-Close Principle

Page 21: Level up your skills
Page 22: Level up your skills

Liskov Substitution PrincipleLas clases derivadas, deben poder ser sustituidas por

su clases base

Page 23: Level up your skills

Liskov Substitution Principle

Page 25: Level up your skills
Page 26: Level up your skills

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

Interface Segregation Principle

Page 30: Level up your skills
Page 31: Level up your skills

Dependency Inversion PrincipleDepender de las abstracciones no de las concreciones

Page 32: Level up your skills

Dependency Inversion Principle

Page 33: Level up your skills

Dependency Inversion Principle

Page 34: Level up your skills
Page 35: Level up your skills
Page 36: Level up your skills

Keep It Simple, StupidSimple no es lo mismo que programar poco

Page 37: Level up your skills
Page 38: Level up your skills

Don’t Repeat Yourselffor(int i = 0; i< 100; i++)

Console.WriteLine(“I’ll not repeat myself”);

Page 39: Level up your skills
Page 40: Level up your skills

You Ain’t Gonna Need It

Tenemos que ser capaces de adaptarnos

rápidamente al cambio, no preverlo

Page 41: Level up your skills
Page 42: Level up your skills

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

Quique Martínez@quiqu3 Q&A

Fernando Escolar@fernandoescolar

Pablo Bouzada@pbousan

Page 44: Level up your skills

BARCELONA DEVELOPERS CONFERENCE 2012

| 6 dic – 7 dic – 8 dic