(job) Javier Luna blog

Sobre mi verdadero oficio como fontanero. Vengaaa… Hasta lueeegooo…!!!

El Control de Inversión solo aparece cuando trabajas con Interfaces en Visual Studio .NET

dejar un comentario »

Hoy estoy con la pluma, vamos, que se sale :)

Si desarrollas software definiendo tus propias intefaces para implementarlas en tu propio modelo de objetos, que encapsula aquella funcionalidad orientada a soportar las reglas del negocio por las cuales estas allí sentado al frente de una PC, dizque currando, pues experimentaras en carne propia la delicia de los beneficios de un código minimamente ordenado y entendible por cualquier ser humano simple, común y silvestre.

Desarrollar software es aquella fantástica oportunidad que te brinda la vida para dejar obsoleta una idea de hacer las cosas -que antes fue la hostia- y evolucionar a la siguiente preciosa idea -que sera la leche- por unas semanas mas :)

Pero en todo ese código -que picas y picas casi encorvado sobre el teclado que gime sus gritos al sonar de cada tecla- veras que el uso de interfaces, para maquetar tu modelo de objetos, siempre fue la mejor decisión de todas.

Una decisión que contrasta de forma inversamente proporcional con la forma tradicional de hacerlo, en función a la variable: que tan preparado estas para el cambio.

Un cambio que ha de soportar TU código y que si NO haz utilizado una técnica que facilite saber como el entorno interactua con tu modelo de objetos, todo sera mas complicado al momento que venga el próximo evolutivo.

Y solo te quedara exclamar a voz en cuello, con la yugular casi a punto de reventar: “¡¡¡…Esos cambios son muy drasticos…!!!”.

En fin, el modelo de objetos que haz desarrollado orientado al producto de software que vienes implementando siempre debería ser desplegado en dos assemblies, uno de ellos SOLO llena de interfaces y la otra con tus propias clases, asumiendo que estas son, la implementación por defecto, de aquella lógica que TU haz abstraído a nivel SOLO de comportamientos y la interacción con el entorno.

Entonces, cuando empiezas a manipular solo interfaces orientadas a ese producto de software ya deberías sentirte en un nivel diferente al común de los mortales :)

Y es allí, en la manipulación de aquellas interfaces, dizque clasesillas esqueleticas y duplicadoras de esfuerzo, que encuentras la luz: el omnipresente Control de Inversión.

Un Control de Inversión que rompe la necesidad de hacer new de las class de tu modelo de objetos, entregando esa competencia a una interfaz de orden superior que se implementara como una factory, posteriormente.

La verdad verdadera acaba de ser revelada ante vuestros ojos.

Romper el vinculo fuerte entre dos assemblies, a través de un tercero que define solo interfaces para que ese castillo de naipes que vienes edificando tenga la capacidad de ser acoplable.

NO todas las cartas utilizadas para ese castillo deberían ser siempre de la misma marca, cuando tengas que instalar aquello en algún cliente donde encontraras una realidad diferente a la que habías imaginado en TU diseño.

O del mismo modo, cuando construías estructuras extrañas con tu lego NO todas las futuras piezas tendrían que venir del misma tienda, donde compraste la primera, si solo cumpliesen la regla necesaria para acoplarse con la otra pieza.

La teoría es por demás bella y maravillosa, contrastandose siempre -casi contranatura- frente a la patética y cruda realidad.

La cruda realidad esta compuesta, allí en las empresas, con piezas de diferentes tipos y múltiples proveedores. Facilitar el acoplamientos de aquellas piezas en el producto de software que debes implementar ahora, es el reto por el cual las interfaces tienen su razón de ser y logran existir.

Amen :)

Escrito por Javier Luna

septiembre 13, 2010 a 6:23 pm

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.