Codigo generado con Genexus integrado al desarrollo tradicional


En la comunidad de GeneXus, muchos estamos acostumbrados a ver el código Java y C# generado como un simple paso intermedio para obtener nuestras aplicaciones finales. Es casi equivalente al “Java Bytecode” o al “CIL (Common Intermediate Language)” de .NET: algo que cumple un rol técnico, pero que rara vez requiere manipulación humana directa. Sin embargo, cuando llega el momento de entregar una aplicación a un cliente que no utiliza GeneXus —o que no está dispuesto a integrarlo en su proceso—, surgen algunos desafíos. El código generado, visto desde fuera, puede ser poco intuitivo y difícil de mantener mediante herramientas habituales en desarrollo nativo, como Visual Studio, GitHub y otros entornos de programación.

Dificultades para la integración sin GeneXus

Cuando un cliente no desea incorporar GeneXus a su proceso, necesita un acceso lo más “limpio” posible al código fuente. Sin embargo, el desarrollador nativo que abre estos archivos suele encontrar:

  1. Complejidad Estructural: Patrones y convenciones que pueden no ser familiares a la hora de mantener el código.

  2. Dependencias no evidentes: Llamadas y librerías internas de GeneXus que se traducen en referencias no estándar.

  3. Falta de documentación: Explicaciones y comentarios mínimos o inexistentes en el código generado.

  4. Nomenclatura poco intuitiva: Variables, eventos o rutinas con nombres automáticos que son difíciles de asociar con lo modelado o programado en GeneXus, lo que hace más complejo interpretarlos y mantenerlos.

Estas particularidades dificultan el uso de herramientas comunes como Visual Studio o GitHub de la forma en que se acostumbran en proyectos nativos

Desde hace algunos años se han intensificado los pedidos de clientes de integrar el armado / pruebas / instalación de aplicaciones GeneXus a las herramientas que el cliente maneja para el resto de sus aplicaciones.  Algunas de estos avances son:

  • Uso de herramientas estándar para varios de estos proceso, por ejemplo Jenkins, Gradle, Maven, etc, facilitando la introducción de aplicaciones GeneXus a empresas (generalmente grandes) que no tengan Genexus.
  • Integrar reorganizaciones de la base de datos manejando las migraciones de schema con FlyWay.
  • Hacer deploy de los fuentes (java.net)de una aplicación a repositorios GIT y que luego sigan el proceso normal de analisis, armado, pruebas e instalación que el cliente ya domina. Permite el uso de herramientas tipo SonarQube para hacer chequeos y otras más.


Con la reciente liberación de Angular en GeneXus, la generación de código ha dado un paso significativo hacia la calidad y las convenciones de la programación a mano. Esto ha logrado que los desarrolladores nativos que se asoman al código generado se sorprendan gratamente: cumple con buenas prácticas, sigue convenciones claras y se integra mucho mejor con los procesos de desarrollo que conocemos en el mundo tradicional de la programación.


El giro con Angular: Código más amigable

Con la liberación de Angular, GeneXus ha dado un salto en la generación de código que se acerca más a las prácticas habituales en el desarrollo manual. Ahora, al mostrar el código TypeScript y la estructura de carpetas y componentes a desarrolladores nativos, la reacción suele ser muy positiva. Se observan:

  • Convenciones estándar: Uso de nombres de clases, componentes y archivos que siguen las guías oficiales de Angular.

  • Buena organización de proyectos: Estructura de módulos y componentes que respetan las mejores prácticas de la comunidad.

  • Facilidad de mantenimiento y customización: Ajustes más directos, sin necesidad de un conocimiento profundo de la plataforma GeneXus para pequeños retoques.

Este tipo de código generado “amigable” no solo ayuda a la comprensión, sino que también facilita la adopción de procesos de integración y entrega continua (CI/CD), así como los análisis de seguridad y calidad con herramientas estándares de la industria.


Beneficios para la integración y la calidad

Cuando el código generado cumple con reglas y convenciones claras, se amplía su espectro de uso:

  • Integración en CI/CD: Los repositorios de Git se pueden configurar para hacer builds automatizados, correr pruebas unitarias y revisar la calidad del código sin fricciones.

  • Escaneo de seguridad: Herramientas como SonarQube o scanners de vulnerabilidades se ejecutan sobre el código generado, detectando problemas que antes podían pasar desapercibidos.

  • Colaboración con equipos mixtos: Programadores GeneXus y desarrolladores nativos pueden trabajar en el mismo proyecto sin que el código parezca un “código máquina” incomprensible.


Conclusiones

El mundo del low-code y la generación de código presenta ventajas claras, como la rapidez de desarrollo y la reducción de trabajo manual. Sin embargo, también conlleva retos cuando el resultado debe integrarse con flujos y herramientas de desarrollo tradicionales. Con la evolución de GeneXus, especialmente al generar código Angular, se está construyendo un puente entre estos dos enfoques: lo automatizado y lo manual.

Para GeneXus, el código seguirá siendo un paso intermedio con poco sentido de mantenimiento manual. Pero la mejora en la legibilidad y las convenciones supone un gran avance, ya que permite una integración fluida en equipos híbridos, adopción de CI/CD y un mayor grado de transparencia frente a los clientes. De esta forma, lo que antes era un artefacto interno puede pasar a ser un activo de valor que facilita el trabajo de equipos más amplios, cumple estándares de calidad y se integra con las herramientas más populares del mercado.

En definitiva, este cambio demuestra que la generación de código no es simplemente un subproducto, sino que puede transformarse en una parte fundamental y bien integrada del ciclo de vida del desarrollo de software, tanto para quienes usan GeneXus como para quienes trabajan con un enfoque de programación tradicional.

En la comunidad GeneXus hemos tenido una ventaja significativa sobre muchos otros desarrolladores del mundo en lo que respecta al uso de código generado automáticamente. Al formar parte de un proceso determinista, confiamos plenamente en la salida que se obtiene. Con la llegada de la inteligencia artificial, a muchos aún les llevará tiempo acostumbrarse a generar código y a confiar en que cumpla fielmente con lo definido. Este es un momento ideal para reforzar e incrementar la integración del código generado por GeneXus con herramientas y procesos estándar de la industria, ya que la calidad resultante es verdaderamente sobresaliente. 

Comentarios

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.