AjGenetizando una aplicación

Hace un tiempo, escribí:

Code Generation with AjGenesis in a Real Project

Generación de código en un proyecto real

En ese proyecto real, apliqué lo que puedo llamar “ajgenetizar” una aplicación. ¿Qué significa esto?

La idea básica es:

– Comenzar escribir una aplicación que funciona, que reseulva los problemas técnicos, como persistencia, validaciones, seguridad, distribución de la lógica, presentación, etc… como para tener un punto de partida sólido.
– Comenzar a descubrir las partes repetitivas: archivos de configuración, archivos de proyectos, directorios, clases de acceso a datos, clases de lógica, clases de dominio, otros archivos de texto,… 
– Extraer un modelo inicial: puede ser, descripción de las entidades, algunos parámetros técnicos como la base de datos a usar, etc..
– Escribir tareas y templates para generar una aplicación similar, automáticamente.
– Especificar claramente, cuáles de esos artefactos de texto

– son regenerados cada vez que el modelo cambia
– son generados una vez, y etnonces, evolucionan manualmente
– son creados manualmente

– Alterar el modelo, y regenerar: todo debería seguir trabajando.
– Escribir otro modelo, para producir otra aplicación, pero reusando el conocimiento adquirido (sobre la lógica de implementación, patrones, tecnología usada).
– Otra “prueba ácida”: cambiar una de las tecnologías que se usaron (de acceso a datos directo a ORM, de validación en código a un framework de validación, agregar un contenedor de Inversion of Control, etc…), y probar la nueva aplicación

Podría comenzar a escribir una serie de posts, adoptando este camino. Pero pienso que se necesita un camino más tipo “tutorial”, para el estado actual del proyecto AjGenesis (poca documentación, pocos posts y bloggers en el tema, pocos ejemplos explicados…). El camino que seguiré es: comenzar con un modelo mínimo, generar unos pocos archivos, y entonces, iterar, para refinar el modelo y el alcance de lo generado, comentando en detalle las decisiones tomadas, publicando el código de cada avance.

Nos leemos!

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

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

Leave a Reply

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


*