@Josber, efectivamente. Además, no hay que olvidar que la lectura del programa debe ser fácil y la estructura debe permitir hacerlo de manera rápida.
Yo he creado en más de una empresa los estándares de codificación en Cobol, cuyos puntos clave siempre han sido:
- En la PROCEDURE (equivalente de Main) - debemos ver los párrafos describiendo qué hace el programa y en qué orden (NO el cómo lo hace). Así al llegar al "main", con una ojeada rápida ya veo si es el programa que me interesa o no. Así que el Main sólo debe contener llamadas a párrafos, nada de instrucciones MOVE, CALL, ADD etc.
- Para ver el cómo hace lo que hace el programa, ya iremos a los párrafos concretos que se llaman desde el Main (para ver los detalles).
- Máximo nivel de performs anidados: 3
- Máximo nivel de IFs anidados: 3
- Máximo nivel de capas de software: 3 (Orquestrador, Rutina funcional, Rutina técnica/Accesor)
- Indentación obligatoria
- NADA de puntos, un sólo punto al final del párrafo en línea separada
- NADA de THRU en PERFORM ni párrafos con nobmre-parrafo-EXIT
- NADA de secciones
- NADA de GO TO salvo párrafo de ABEND
- Programa nuevo: máximo 1500 líneas. Nueva función grande = nuevo programa + CALL
- Respetar los tipos de campo numérico según plataforma (COMP-5 para Intel X86_64, COMP-3 para IBM Z etc.)
Creo que no se me olvida nada de los puntos importantes.
Esto se lo hago aprender como los 10 mandamientos a los DEVs, y hasta pongo controles en Jenkins de ciertas cosas cuando el Build para comprobarlo automáticamente y como haya cosas que no me cuadran - ABEND como una casa.
