Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   COBOL - General (https://www.cobolforo.es/forumdisplay.php?f=44)
-   -   Código Cobol - mayúsculas/minúsculas (https://www.cobolforo.es/showthread.php?t=1095)

Breew 6 de abril de 2020 19:19

Código Cobol - mayúsculas/minúsculas
 
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

Cita:

Citación del post de JCantero (Mensaje 5417)
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:


Código COBOL:
  1.  
  2.      PERFORM WITH NO LIMIT
  3.              EXEC SQL
  4.                   FETCH cursor_con_1
  5.                         INTO :ID_NOT,
  6.                              :NOTFEC,
  7.                              :NOTHOR,
  8.                              :NOTTEX,
  9.                              :NOTR,
  10.                              :NOTV,
  11.                              :NOTA
  12.              END-EXEC
  13.  
  14.              IF SQLSTATE = "02000"
  15.                 IF I = 0
  16.                    MOVE "No hay registros a mostrar ..." TO "ToolTipText" OF SPREAD1
  17.                 ELSE
  18.                    MOVE I TO I-EDI
  19.                    STRING I-EDI
  20.                           " Registros mostrados ..." DELIMITED BY SIZE INTO WTEX
  21.                    END-STRING
  22.                    MOVE WTEX TO "ToolTipText" OF SPREAD1
  23.                 END-IF
  24.                 EXIT PERFORM
  25.              END-IF
  26.  
  27.              ADD  1            TO I
  28.              MOVE I            TO "MaxRows"           OF SPREAD1
  29.              MOVE I            TO "Row"               OF SPREAD1
  30.              MOVE NOTFEC       TO FECHA
  31.              MOVE CORR FECHA   TO FECHA1
  32.              MOVE CORR FECHA1  TO FECHA-EDI
  33.              MOVE 1            TO "Col"               OF SPREAD1
  34.              MOVE ID_NOT       TO "Text"              OF SPREAD1
  35.              MOVE 2            TO "Col"               OF SPREAD1
  36.              MOVE 0            TO "Text"              OF SPREAD1
  37.              MOVE 3            TO "Col"               OF SPREAD1
  38.              MOVE FECHA-EDI    TO "Text"              OF SPREAD1
  39. *
  40.              MOVE 4            TO "Col"               OF SPREAD1
  41.              MOVE NOTHOR (1:2) TO HH
  42.              MOVE NOTHOR (3:2) TO MI
  43.              MOVE NOTHOR (5:2) TO SS
  44.              MOVE HORA         TO "Text"              OF SPREAD1
  45. *
  46.              MOVE 5            TO "Col"               OF SPREAD1
  47.              MOVE 20,30        TO "RowHeight"(I)      OF SPREAD1
  48.              MOVE POW-TRUE     TO "TypeEditMultiLine" OF SPREAD1
  49.              MOVE NOTTEX       TO "Text"              OF SPREAD1
  50.              COMPUTE WSALTO = "MaxTextRowHeight"(I)   OF SPREAD1
  51.              MOVE WSALTO       TO "RowHeight"(I)      OF SPREAD1
  52. *
  53.              MOVE NOTR         TO BIN-2
  54.              MOVE BIN-1        TO W-RED
  55.              MOVE NOTV         TO BIN-2
  56.              MOVE BIN-1        TO W-GREEN
  57.              MOVE NOTA         TO BIN-2
  58.              MOVE BIN-1        TO W-BLUE
  59.              MOVE W-RGB        TO "ForeColor"         OF SPREAD1
  60.              INVOKE SPREAD1 "Refresh"
  61.  
  62.      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:

Código COBOL:
  1. if saldo = zeros go sale.
  2.  
  3. if saldo = zeros
  4.    add wsaldo    to wtotal
  5.    invoke pow-self "DisplayMessage" using "El Saldo está en cero"
  6.    go sale
  7. end-if.
  8. 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

Cita:

Citación del post de Fito (Mensaje 5423)
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

Cita:

Citación del post de JCantero (Mensaje 5422)
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
Código COBOL:
  1.      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

Cita:

Citación del post de Nitzer (Mensaje 5426)
viene de lejos

:D :bien:


La franja horaria es GMT +2. Ahora son las 15:39.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.