Haciendo una KB GeneXus mas mantenible: Mantener aislado el código externo.


Con GeneXus se pueden hacer aplicaciones multiplatafoma de manera eficiente en diferentes lenguajes.
Sin embargo en algunas ocasiones especificas hay que recurrir a programar en codigo C# o Java.

La que sigue, es una recomendación sencilla, que me hubiese gustado que alguien me la diera hace unos cuantos años, pues simplifica mucho el mantenimiento futuro.   

Para hacer que la KB GeneXus sea mantenible en el tiempo y fácil de migrar, es indispensable mantener dicho código en su mínima expresión y lo más aislado posible. 

En particular, existe la posibilidad de incluir código C# o Java dentro de los objetos Genexus, con los comandos

  • CSHARP
  • JAVA
  • SQL
  • EXEC

Mi recomendación, para hacer facilitar la migraciones futuras, no tener estos comandos mezclados con el resto del código Genexus. En particular, conviene poner en procedimientos estos comandos, de forma que cuando cambie de sistema operativo (EXEC), de base de datos (SQL) o de lenguaje de programación (CSHARP, JAVA) tenga que revisar solo esos procedures y no complicarme con el resto de la aplicación.

1. Mantenibilidad y Escalabilidad

Cuando trabajamos con aplicaciones de gran escala o que cambian con el tiempo, la mantenibilidad se convierte en una preocupación principal. Introducir código externo directamente en la lógica de negocio principal de una aplicación GeneXus puede complicar las actualizaciones y el mantenimiento. En cambio, al ubicar este código en procedimientos separados y específicos, podemos garantizar que cualquier cambio en el código externo no afectará de manera adversa otras partes de la aplicación.

2. Modularidad y Reusabilidad

Agrupar el código externo en procedimientos aislados con una funcionalidad específica tiene el beneficio adicional de modularidad. Este enfoque permite que el código se reuse en otras partes de la aplicación o incluso en otros proyectos, evitando la repetición y garantizando una coherencia en su funcionamiento.

3. Debugging y Resolución de Problemas

Cuando surgen problemas en una aplicación, es crucial poder identificar y resolver rápidamente la causa raíz. Mezclar código externo con la lógica nativa de GeneXus puede hacer que el proceso de depuración sea más complejo. En cambio, al tener código externo en procedimientos específicos, podemos identificar rápidamente si un problema está relacionado con el código GeneXus o con el código externo incorporado.
Es recomendable y facil tener Unit Test sobre estos procedimientos.

4. Adaptabilidad a Cambios Tecnológicos

La tecnología evoluciona rápidamente, y las soluciones externas que se consideran óptimas hoy pueden no serlo mañana. Al encapsular el código externo en procedimientos aislados, podemos cambiar o reemplazar fácilmente estas soluciones sin tener que reescribir grandes porciones de nuestra aplicación.

Conclusión

Aunque GeneXus ofrece la flexibilidad de integrar código externo, es vital abordar esta integración con cautela y estrategia. Aislar este código en procedimientos con funcionalidades específicas no solo garantiza una estructura organizada y fácil de mantener sino que también asegura que nuestras aplicaciones sean robustas, escalables y preparadas para el futuro. Al seguir esta práctica, podemos aprovechar lo mejor de ambos mundos: la eficiencia de GeneXus y la funcionalidad especializada del código externo.

Comentarios

Entradas más populares de este blog

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

Aplicación monolítica o distribuida?

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