solid para catdotnet

Post on 24-May-2015

176 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Principios básicos de la programación y calidad.

TRANSCRIPT

SOLIDLos principios básicos de la

OOP

@fernandoescolar fer.escolar@gmail.com

Programación Orientada a Objetos

• Abstracción• Encapsulamiento• Herencia• Cohesión• Polimorfismo

Refactorización de código

• Código duplicado• Métodos largos• Clases largas• Atributos temporales• Código espagueti• Jerarquías de herencia

paralelas

Código que huele(Code Smells)

• Rigidez• Fragilidad• Inmovilidad• Viscosidad• Complejidad innecesaria• Repetitividad• Opacidad

SOLID

• Single responsibility• Open-closed• Liskov substitution• Interface segregation• Dependency inversion

“Single Responsibility Principle

Una clase debe tener una, y solo una, razón para cambiar

Single Responsibility Principle

Demo

“Open-Closed Principle

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

Strategy Pattern

Demo

“Liskov Substitution Principle

Las clases derivadas, deben poder ser sustituidas por su clases base

Liskov Substitution Principle

“Interface Segregation Principle

Desgranar las interfaces lo más fino posible, para que sean lo más específicas posible

Interface Segregation Principle

“Dependency Inversion Principle

Depender de las abstracciones no de las concreciones

Dependency Injection

Demo

“Keep It Simple, Stupid!

Simple no es lo mismo que programar poco

“DRY: Don’t Repeat Yoursef

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

“YAGNI

Tenemos que ser capaces de adaptarnos rápidamente al cambio, no preverlo

“Don’t reinvent the wheel

Si ya existe, se adapta a nuestras necesidades, esta probado y funciona… ¿por qué no utilizarlo?

Cuando programes: SOLID

Piensa en el objetivo de cada principio y si lo estás cumpliendo en todo momento.

Preguntas

Bibliografía

¡Muchas gracias!

@fernandoescolar fer.escolar@gmail.com

top related