Otro modelo para AjGenesis

En este post voy a describir una idea, no hay implementacion todavía. AjGenesis, mi proyecto de código abierto de generación de código, está basado en modelos, tareas y plantillas. Cada artecfacto a ser usado, podemos definirlo nosotros, y así se consigue generar salidas, archivos, código para cualquier tecnología, framework o plataforma.

El modelo reside en memoria, durante su proceso. Podemos cargar en memoria varios modelos a la vez: en los ejemplos que he publicado, un modelo abstracto describe la solución en términos generales, y otro modelo de tecnología define el lenguaje, base de datos, patrones, que se usaran en el proceso de generación de código.

Ambos modelos pueden ser cargados desde archivos XML, o desde archivos de texto (esta es una nueva característica, todavía en prueba). Ahora, quisiera proponer otro camino: modelos en planillas de cálculo.

El ejemplo

En un post reciente:

Modelo textual para generación de código con AjGenesis
Textual model for code generation in AjGenesis

Presenté ahí un modelo simple, en dos representaciones: XML y textual. Ese modelo podría ser expresado en una planilla Excel, como:

 

El alcance de una descripción de objeto está determinada por la indentación: Entity Customer es un elemento de Entities (vean que no importa dejar filas en blanco). Podemos usar una tabla para describir un elemento compuesto de varios. Una propiedad simple puede ser descripta en dos columnas consecutivas: la primera conteniendo el nombre de la propiedad, la segunda nos da el valor. Si queremos describir un objeto en otra hola de la misma planilla, ponemos el nombre entre corchetes […], como en “Entity [Employee]”, que nos podría llevar a otra hoja como:

 

El principal beneficio de este modelo es la clara representación que conseguimos. Colores y tipos de letras mejoran la presentación, pero son ignorados en la carga del modelo. Pero la presentación se mejora. Como siempre digo, no somos vulcanos (al Sr. Spock le bastaría un archivo XML), y una buena presentación nos ayuda a procesar información.

Próximos pasos

Si consideran que esta propuesta es útil, podría escribir un nuevo Object Builder que se alimente de archivos Excel, para cargar un modelo. Debería elegir la librería a usar: podría tomar el modelo de objetos de Excel, aunque eso implica que para usarlo, se deba tener el Excel instalado. Como siempre, sugerencias, comentarios, bienvenidos!

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

This entry was posted in 2643, 6145. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>