Saludo

0 comentarios
Apartándome de la programación por un momento, quería desearles a todos una Feliz navidad y un próspero año nuevo.

DRY y YAGNI, dos metodologías para no perder de vista

0 comentarios
Para cerrar una etapa de acrónimos o siglas relacionados al diseño de software, me resta mencionar al menos dos que no está demás tener en cuenta.
Son metodologías en las que solemos caer muy fácilmente y para colmo de males, con bastante frecuencia.
Estas son: DRY (Don't Repeat Yourself) y YAGNI (You Ain't Gonna Need It).
Intentar llevar a cabo todas y cada una de las metodologías y principios vistos hasta aquí, nos permitirá tener un código limpio; mucho más fácil de leer, comprender y expandir.

Inversión de control (IoC)

0 comentarios
Implementar el principio de inversión de dependencia (DIP) sin realizar inversión de control puede resultar en un trabajo incompleto. Vamos a terminar con las dependencias reales en nuestro código mediante la inyección de clases colaboradoras pero solamente en el código de alto nivel. Esto aun nos deja en un mal lugar, aquí es donde la inversión de control tiene lugar.
Echemos una mirada al siguiente código:

Principio de inversión de dependencia (DIP)

4 comentarios
El Principio de inversión de dependencia (DIP) es el quinto y último del acrónimo SOLID y establece que: "Los módulos de alto nivel no deberían depender de módulos de bajo nivel, ambos deberían depender de abstracciones" y "Las abstracciones no deberían depender de detalles sino que los detalles deberían depender de las abstracciones". Si esto no es un buen trabalenguas, los trabalenguas dónde están...
Esto básicamente significa que en ningún lugar de nuestro código deberíamos depender de una implementación actual, sino que en su lugar debemos depender de interfaces o clases abstractas. ¿Y por qué deberíamos hacer esto? Porque esto nos habilita a cambiar cualquier implementación por otra y ninguna otra clase que hayamos codificado debe saberlo o importarle. Si, es así, a ninguna otra clase debe importarle que el cambiemos un colaborador por otro.

Principio de segregación de interfaces (ISP)

0 comentarios
La cuarta letra del acrónimo S.O.L.I.D., representa al Principio de segregación de interfaces (ISP) y afirma que "Los clientes no deben ser forzados a depender de interfaces que no utilizan". Esto significa que cuando un objeto tiene diferentes usos (no confundir con distintas responsabilidades) debe haber entonces una interfaz específica por cada uno de esos usos.
Esto se torna repetitivo, pero esto es para minimizar el impacto de los cambios que puedan haber sobre nuestro código.
En otras palabras: si tenemos una clase abstracta o una interfaz, entonces, quienes la implementen, no deben ser forzados a implementar partes (métodos o propiedades) que no les importen.

Principio de sustitución de Liskov (LSP)

0 comentarios
La tercera letra del acrónimo S.O.L.I.D., representa al Principio de sustitución de Liskov (LSP). Establece que "Las funciones que usan punteros o referencias a clases base, deben ser capaces de utilizar objetos o clases derivadas sin necesidad de saberlo". Esto significa que cuando nuestro código usa una clase específica (o una interfaz), éste debería ser capaz de usar otra clase que herede de la específica (o diferentes implementaciones de la interfaz) sin tener que cambiar su comportamiento interno.
Esto, nuevamente, es para minimizar el impacto de los cambios que puedan haber sobre nuestro código.
Los problemas que resuelve LSP casi siempre son fácilmente evitables. Hay algunos habituales signos reveladores de que una violación a LSP aparece en el código. He aquí un escenario que muestra cómo puede ocurrir una violación a LSP.
 
Copyright 2009 Programación SOLIDa
BloggerTheme by BloggerThemes | Design by 9thsphere