Twittear |
Apartándome de la programación por un momento, quería desearles a todos una Feliz navidad y un próspero año nuevo.
Twittear |
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.
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.
Por
Juan Barrionuevo
Etiquetas:
Diseño,
Don't repeat Yourself,
DRY,
No lo vas a necesitar,
No te repitas a ti mismo,
YAGNI,
You Ain't Gonna Need It
Twittear |
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:
Echemos una mirada al siguiente código:
Twittear |
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.
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.
Por
Juan Barrionuevo
Etiquetas:
DIP,
Diseño,
Objeto,
Principio de inversión de dependencia,
Programación,
SOLID
Twittear |
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.
Twittear |
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.
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.
Suscribirse a:
Entradas (Atom)