Artículo
Alberto Fuentes · Dic 19, 2022 Lectura de 2 min

Truco: Cómo usar código de depuración auto-destructivo

Todos los desarrolladores hemos cometido alguna vez el error de accidentalmente dejar código temporal de depuración en lugar de eliminarlo al finalizar lo que estamos investigando.

Lo interesante de escribir en ObjectScript es que hay una forma de hacer que el código provisional sea realmente provisional y se auto-destruya automáticamente! Incluso puede hacerse de manera que el código no aparezca en tu sistema de control de código fuente, lo que puede ser útil igualmente.

El secreto radica en utilizar el "intermediate code" (.INT), que se genera cuando se compilan clases (.CLS), código de rutina (.MAC) o páginas CSP (.CSP).  El código INT se utiliza entonces para crear el código OBJ, que es el que finalmente se ejecuta.(Consulta la documentación para más información sobre el flujo de compilación).

El código INT puede ser editado directamente en el IDE, pero como es código generado, generalmente no se hará control de código fuente sobre él. Una vez que el archivo INT ha sido editado (por ejemplo para añadir código de depuración), se puede compilar y se generará nuevo código OBJ que será el que finalmente se ejecute.

Sin embargo, estas ediciones son auto-destructivas, y se sobrescribirán cuando el elemento de código fuente correspondiente se compile (por ejemplo: CLS, MAC, CSP,  etc).  

Aprovechar la naturaleza auto-destructiva de los archivos INT generados puede ser útil en las siguientes situaciones:

  • Al añadir código de depuración
  • Al añadir un breakpoint para depuración interactiva
  • Al añadir logs adicionales (e.g. DO LOG^%ETN)
  • Al insertar una corrección rápida para una edición de emergencia:
    • *UTILIZA ESTO SÓLO SI* tus entornos despliegan código fuente automáticamente si no, entonces la corrección provisional podría durar más de lo deseado.

Con este enfoque, cada vez que se importe o compile código fuente, se reconstruirá el código INT y desaparecerán todos los cambios provisionales que habían hecho. 

Resulta muy útil asegurarse de que estas ediciones provisionales son realmente provisionales!

1
0 32
Debate (1)3
Inicie sesión o regístrese para continuar