

Los
desarrolladores más ortodoxos se aferran vehementemente al uso estricto de Estructuras
de Control para asegurarse de que los desarrollos sean realizados cumpliendo las normas de la programación Estructurada. Estos desarrolladores vivieron una época muy
ardua en la que mantener un programa al día y realizarle cambios continuos, en
una programación carente de estructura era un verdadero tormento. Había programas
que requerían más de 150 páginas de desarrollo. Las compilaciones podían llegar
a las 350 páginas y el seguimiento del código fuente en cuanto a la lógica
empleada era tan complicado como descifrar un mensaje de las tropas enemigas en
plena guerra.
Hay gente
que no pueden escuchar la palabra: GOTO porque enseguida sacan la estaca y la cruz
para liberarse de tan horrendo maleficio.
En la época
de la programación no estructurada, el uso del GOTO procuraba cubrir la ausencia
de estructuras de control que hicieran posible generar operaciones cíclicas y
repetitivas en la lógica del programa. Aparecieron, afortunadamente, las
siguientes sentencias:
Dow: Do while (ejecute mientras se cumpla la condición)
Dou: repeat (ejecute
hasta que se cumpla la condición)
For: (con los valores de iteración desde … hasta ejecute)
El select los if anidados y el Case se convirtieron en
grandes aliados del programador que le permitieron desarrollar códigos más
entendibles para sus colegas y para ellos mismos a lo largo del tiempo.
Para pesar de algunos, los siguientes códigos de
operación han logrado “colarse” y romper el esquema rígido que tanto alivio
ocasiona a muchos desarrolladores, provocando reacciones encontradas de
amor-odio entre las viejas y nuevas tendencias de programación.
Iter, Leave, Leavesr, GOTO
ITER
Este código ha sido particularmente útil cuando estamos
validando los campos de una pantalla en una rutina y nos topamos con que uno de
ellos tiene un valor errado y queremos detener el proceso en ese momento e
informar al usuario con un mensaje en pantalla que debe corregir el error
Mientras no salir;
Mostrar pantalla;
Si campo
1 en error;
mostrar mensaje 1;iter;
Endif
Si campo 2 en error;
Mostrar mensaje 2;
Fin del lazo;
Si tuviésemos 20 campos que validar, por ejemplo, habría que
esperar la validación de los siguientes 19 campos para dar el mensaje de error. Esto ocasionaría una demora en el tiempo de respuesta al usuario y un retraso acumulativo en la carga de datos.
Iter permite regresar al principio del lazo (mientras no
salir) y mostrar, al usuario, la pantalla con el error.
Este ejemplo es válido si quiere mostrarse cada mensaje de
error uno a uno. En lo personal prefiero resaltar los campos con errores todos
de una vez para que el usuario corrija en el menor número posible de “pantallazos”
los errores y pierda menos tiempo en la carga. Particularmente coloco un error genérico: "Revise los campos resaltados. Hay Datos no válidos o erróneos".
Hay instalaciones que
tienen en sus estándares de desarrollo la validación de uno a uno de los
campos, informando al usuario el error en cada revisión.
LEAVE
Este código de operación se utiliza cuando queremos salir del lazo instantamente. Esto puede simplificar el agregar IF para bloquar la ejecución de las siguientes instrucciones del lazo. Ayuda a realizar la programación en forma mas simple:
Mientras no salir;
Mostrar pantalla;
Si F03 Leave;
Si campo 1 en error;
mostrar mensaje 1;
Endif;
Si campo 2 en error
Mostrar mensaje 2;
Endif;
Fin del lazo;
El programa abandona el lazo automaticamente cuando el usuario presiona F3.
En la manera tradicional habria que colocar un IF not F03
antes de: Si campo 1 en error, y cerrar ese IF al final de todas las validaciones.
LEAVESR
Este código es muy parecido al LEAVE pero en lugar de salir de un lazo de repetición permite programar en forma automática el abandono de una rutina, en cualquier momento que lo desees.
Tambien es utilizado en los procesos de validación al detectar algun error. Luego de realizar las operaciones que correspondan (encender indicadores, etc) y antes de seguir validando otros campos de pantalla se coloca LEAVESR para salir de la rutina y regresar al punto donde se muestra la pantalla al usuario.
Finalmente el tan aterrador:
GOTO
Dados los antecedentes penales que tiene este código de operación es recomendable utilizarlo con discreción. Aunque algunos lo descartan completamente, otros recomiendan que utilizarlo "hacia abajo" siempre. Es decir la instrucción a la que se hace referencia en el goto es posterior en secuencia y en número de línea a la instrucción donde se encuentra el GOTO.
Una funcionalidad inofensiva del GOTO es parecida a la del LEAVESR. Colocando una etiqueta en la línea donde está el ENDSR, puede hacerse un GOTO hacia esa etiqueta en la rutina de validación cuando se detecta un campo con error de validación, provocando de esta manera la finalización de la rutina.
En programas extremadamente largos y complejos, el GOTO puede ser una excepcional tabla de salvación con un uso racional y supervisado por el grupo de desarrollo de la organización.
Si te pareció interesante, reenvíalo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
No comments:
Post a Comment