lunes, 10 de septiembre de 2012

Las maravillas de la herencia y la herencia inversa.

Siento mucho haber estado tantos días fuera de línea, pero es que mi vida profesional ha dado un giro inesperado, y gracias a Dios que ha sido alrededor de Velneo V7.

Y es en base a esta experiencia, a este giro profesional, que regreso a comentar algunas cosas que más me han gustado en mi creciente experiencia de trabajo con Velneo V7.

El tema, como bien lo dice el título de esta entrada es la herencia. Sé que parece un tema trillado, pero quisiera darle un enfoque muy personal a este tema de la herencia en Velneo. Las ventajas que da heredar de un proyecto base, o de simplemente sumar un componente heredándolo es algo sin valor. Digo que es sin valor porque todo el equipo de programadores (sí ahora tengo un equipo de desarrollo) trabaja en sus módulos de manera independiente pero todos heredan del Núcleo del sistema. Allí están las tablas maestras, la imágenes de la interface, y el corazón del sistema (usuarios, clientes, proveedores, permisos etc).

No es necesario que el resto del equipo tenga acceso al fuente, basta con heredar y obtienen todos sus objetos, tablas, campos e incluso sus tablas pueden relacionarse con las tablas del núcleo, y cuando se hacen cambios en el núcleo, esto no les afecta, es totalmente transparente, sus soluciones seguirán funcionando e incluso irán ganando en complejidad pues cada objeto, campo, tabla, imagen nueva también les sirve a ellos. Si esto no es re aprovechamiento del "código" entonces que alguien me diga qué es.

Pero lo mejor no termina allí, lo mejor es la herencia inversa. Y qué es la herencia inversa es algo así como el saludo de la película Avatar "Te veo". Sí, suena geek, pero es así. Cuando heredamos un proyecto en Velneo es como si le dijeramos "Te veo", porque conocemos todos sus componentes y además los podemos usar todo lo que queramos. Pero al igual que en la película si un personaje decía "Te veo", el otro le respondía lo mismo. Así que el proyecto que es heredado también tiene la posibilidad de ver a su proyecto heredante (por así decirlo). Es cierto, no lo veo y no lo puede reutilizar en la misma complejidad, pero sí que lo puede ver.

Sé que parece enredado, pero la verdad es que es más fácil de lo que se imaginan. Y es que para usar esta herencia inversa, se usa una propiedad o estilo en algunos objetos que se llama Punto de inserción. Es decir que cuando se programa en una solución que sabemos será heredada, tenemos que tener la suficiente creatividad de intuir en qué puntos queremos ver información de los proyectos que nos heredarán. Es como si se dejara una puerta abierta. Si yo dejo un sólo punto de inserción por ejemplo en un menú, entonces quienes hereden mi proyecto, pueden enviar la cantidad que ellos deseen de opciones a mi menú, sin necesidad de tocar el código sin necesidad de abrirle el fuente a los demás.

Las posibilidades que nos brinda esta opción son, para mi, infinitas. Nuestro sistema se puede volver totalmente personalizable, y sin hacer grandes cambios en el mismo.Podemos tranquilamente hacer incluso un sistema base de todo y con puntos de inserción ir personalizándolo para diferentes ocasiones, sin tocar nunca su código.

Y lo mejor de todo esto es que las openApps están pensadas así, si usas vDiseño, te darás cuenta de estos puntos de inserción. Si lees un poco en el manual verás lo fáciles que son de usar, y sino pregunta que con gusto te ayudaremos :)

Y tú qué experiencia has tenido con la Herencia y la Herencia inversa?



No hay comentarios: