Iniciar Sesión

Ver la Versión Completa : Código Cobol - mayúsculas/minúsculas


Breew
6 de abril de 2020, 19:19
Hola.

No se que criterio deberia de tomar a la hora de nombrar las rutinas.
Quizas todas las variables en minusculas y los parrafos y procedures en mayusculas.
¿ como lo haceis vosotros ?

( mi hijo, dice que programo en un lenguaje que esta enfadado: todo lo digo gritando )

Gracias

Kuk
6 de abril de 2020, 21:44
Breew, lo un poco malo de Cobol es que hay demasiado texto. Según mi experiencia, todo en mayúsculas cansa la vista un poco, pero es mejor que todo en minúsculas.

Lo que queda mejor para la visibilidad, para mi, es lo siguiente :


Divisiones, secciones y verbos Cobol - todo en mayúsculas
Párrafos y variables en "CamelCase"


Así, toda "función" y variable es identificada por los ojos enseguida.

JCantero
6 de abril de 2020, 22:22
Yo lo tengo todo en minúsculas.

Me resulta más agradable y como dice Kuk queda más visible las cosas.

Aunque al final es aconstumbrarse, tengo programas o rutinas antiguos que están en mayúsculas.

Lo que hago nuevo todo minúsculas.
:cool:

Kuk
7 de abril de 2020, 09:43
Yo lo tengo todo en minúsculas
Ostras... A mi se me cruzan los cables. Lo mismo es la costumbre, pero todo en mayúsculas todavía lo veo visible. Pero todo en minúsculas... No sé.

Yo creo que lo principal de todo esto es que el código sea más fácil de leer, y también/sobre todo que sea más fácil identificar algo que interese sin tener que recorrerte leyendo todo un párrafo.

Josber
7 de abril de 2020, 19:55
Yo, por convención y porque soy de la vieja escuela, utilizo siempre las mayúscula, excepto para los "métodos" y las "propiedades", que las escribo tal y como las define PWC, más que nada, porque, como se comentó en otro post, si no lo haces así, puede dar errores inesperados.

Como dice Kuk, yo en minúsculas, es que "no veo" nada y, lo que tiene que prevalecer es la claridad de lo escrito, por eso lo que sí que utilizo mucho es dejar una linea en blanco, (antes y después de, por ejemplo un IF o un EVALUATE, INVOKE ...) y, sobre todo hago mucho uso de la indentación, como se puede ver en éste trozo de código:




PERFORM WITH NO LIMIT
EXEC SQL
FETCH cursor_con_1
INTO :ID_NOT,
:NOTFEC,
:NOTHOR,
:NOTTEX,
:NOTR,
:NOTV,
:NOTA
END-EXEC

IF SQLSTATE = "02000"
IF I = 0
MOVE "No hay registros a mostrar ..." TO "ToolTipText" OF SPREAD1
ELSE
MOVE I TO I-EDI
STRING I-EDI
" Registros mostrados ..." DELIMITED BY SIZE INTO WTEX
END-STRING
MOVE WTEX TO "ToolTipText" OF SPREAD1
END-IF
EXIT PERFORM
END-IF

ADD 1 TO I
MOVE I TO "MaxRows" OF SPREAD1
MOVE I TO "Row" OF SPREAD1
MOVE NOTFEC TO FECHA
MOVE CORR FECHA TO FECHA1
MOVE CORR FECHA1 TO FECHA-EDI
MOVE 1 TO "Col" OF SPREAD1
MOVE ID_NOT TO "Text" OF SPREAD1
MOVE 2 TO "Col" OF SPREAD1
MOVE 0 TO "Text" OF SPREAD1
MOVE 3 TO "Col" OF SPREAD1
MOVE FECHA-EDI TO "Text" OF SPREAD1
*
MOVE 4 TO "Col" OF SPREAD1
MOVE NOTHOR (1:2) TO HH
MOVE NOTHOR (3:2) TO MI
MOVE NOTHOR (5:2) TO SS
MOVE HORA TO "Text" OF SPREAD1
*
MOVE 5 TO "Col" OF SPREAD1
MOVE 20,30 TO "RowHeight"(I) OF SPREAD1
MOVE POW-TRUE TO "TypeEditMultiLine" OF SPREAD1
MOVE NOTTEX TO "Text" OF SPREAD1
COMPUTE WSALTO = "MaxTextRowHeight"(I) OF SPREAD1
MOVE WSALTO TO "RowHeight"(I) OF SPREAD1
*
MOVE NOTR TO BIN-2
MOVE BIN-1 TO W-RED
MOVE NOTV TO BIN-2
MOVE BIN-1 TO W-GREEN
MOVE NOTA TO BIN-2
MOVE BIN-1 TO W-BLUE
MOVE W-RGB TO "ForeColor" OF SPREAD1
INVOKE SPREAD1 "Refresh"

END-PERFORM.


Un saludo.-

JCantero
7 de abril de 2020, 23:08
Si, yo os entiendo lo que quereis decir.

Veo mas importante la programacion clara, estructurada, con lineas en blanco como dice Josber y Kuk, a que este en mayusculas o minusculas.

Yo es que estare ya aconstumbrado, como programo bastante en C++ y java pues ya tendre la mente preparada a cualquier disparate. jajajajaja

Lo importante es que este estructurado y que quede claro y comprensivo, independientemente del lenguaje.

Fito
8 de abril de 2020, 01:34
Hola:

A mi me cuesta seguir un programa en mayúsculas, por eso escribo todo en minúsculas, por supuesto las propiedades y métodos tratando de respetar tal cual son, como dice Josber.

"Pierdo" mucho tiempo tratando de que el código sea claro, lo que no me acostumbro mucho es a poner comentarios, muy poco, sería importante también utilizarlos.

Y trato siempre de usar nombre nemotécnicos para todo, para poder identificar con el nombre a qué se refiere cada cosa.

Las variable auxiliares normalmente empiezan son una "w", por ejemplo un acumulador de cantidades "wacu-cant", antes cuando programaba con otras personas el prefijo era "x" por eso tengo programas más antiguos que utilizan esa forma.

Los controles tambien le pongo un prefijo para saber el tipo de control y a su vez el nombre normalmente es el nombre del campo del archivo al cuál hace referencia.

Supongamos que se llama "Campo" para unificar:
un combo = cmbCampo
un cuadro de texto = txtCampo
una grilla = grdCampo
un radio button = optCampo
un checkbox = chkCampo
etc, etc..

Los campos de los archivos tambien le pongo un prefijo para identifica el nombre del archivo. Ahí trato de ponerle tres o cuatro dígitos:

Archivo CTACTE = ccnombre
Archivo RESUMEN = resnombre
etc, etc..

Los comandos con estructura los finalizo con su "end-", salvo que sea simple de un solo renglon:


if saldo = zeros go sale.

if saldo = zeros
add wsaldo to wtotal
invoke pow-self "DisplayMessage" using "El Saldo está en cero"
go sale
end-if.
etc, etc...


Tengo la idea, no el tiempo todavía, de realizar un video mostrando la forma que utilizo para programar, para que entre todos tiremos opiniones y podamos mejorar, ya que en cobol se escribe mucho y no es un tema menor la forma de escribir el código.

Saludos.

Fito...

Kuk
8 de abril de 2020, 09:52
Y trato siempre de usar nombre nemotécnicos para todo, para poder identificar con el nombre a qué se refiere cada cosa.
:apl::bien:
Esto es muy importante. Porque cuando veo variables tipo A1, J2 y WW7... Vamos.... :basta: :D

como programo bastante en C++ y java
Es diferente, porque no hay tanta "palabrería" como en Cobo :D

Quiero decir, si hay texto, o es una clase, o un método o un atributo (variable). En cambio no hay "ADD, COMPUTE, PERFORM UNTIL...". Bueno están los for/while, pero sigue siendo poco verbal y por lo tanto más visible.

Y de los programas Cobol tipo

IF WS-VAR1 GREATER THAN OR EQUAL TO WA-VAR2 THEN

Ya ni hablo... :)

Nitzer
8 de abril de 2020, 20:24
Llamadme viejo, lo acepto, pero yo todo en MAYUSCULAS :)
Tambien es verdad q de pequeño en la escuela me encantaba escribirlo todo en mayúsculas, asi q viene de lejos

Kuk
9 de abril de 2020, 09:20
viene de lejos
:D :bien: