|
Trataremos de dar unas breves indicaciones acerca de cuál es la forma más correcta de programar. Qué aspecto dar al código fuente para que sea más legible y elegante, cómo distribuir el código fuente, etc
Obsérvese el siguiente código:
DIM cadena AS STRING, i AS INTEGER PRINT "Introduce una cadena:"; : INPUT "", cadena$: FOR i%=1 TO LEN(cadena) PRINT MID$(cadena, i%, 1) NEXT i% END |
Ahora compárese con este otro:
' Muestra uno a uno los caracteres de una cadena DIM cadena AS STRING, i AS INTEGERR PRINT "Introduce una cadena:"; INPUT "", cadena FOR i=1 TO LEN(cadena) PRINT MID$(cadena, i, 1) NEXT i END |
Parece claro que la segunda es más conveniente. Desde luego no es la única forma, ni la más correcta; es, simplemente, un estilo. Cada uno tiene su estilo personal, aunque conviene que tampoco sea 'muy personal', si es para compartirlo. El tabular la escritura del código lo hace más legible y fácil de mantener.
El código fuente debe estar bien documentado, de tal forma que si se lo pasamos a otra persona pueda entenderlo sin grandes dificultades. Quizá se piense: "mi código es mío y nunca se lo voy a dejar a nadie, así que para que voy a comentarlo". Parece lógico, pero imagínese que se abandona temporalmente y en el futuro se quiere retocar el programa. Es muy probable el olvido de por qué se hizo tal o cual cosa, (pasa muy a menudo) y es preciso gastar un montón de tiempo descifrando algo que en su día estaba entendido perfectamente.
Aquí está un ejemplo de un programa mal comentado:
' Empiezo el programa DIM cadena AS STRING, i AS INTEGER ' declaro una variable llamada cadena y otra llamada i PRINT "Introduce una cadena: " ' Imprimo el mensaje 'Introduce una cadena' INPUT "", cadena ' Pregunto por el valor de cadena FOR i=1 TO LEN(cadena) ' Hago un bucle repetitivo PRINT MID$(cadena, i, 1) NEXT i ' Cierro el bucle END ' Termino el programa |
Estos comentarios están bien si el código forma parte de algún curso, pero no de un programa de uso habitual. Todo el mundo (que lleva un poco de tiempo programando en BASIC) sabe que con FOR se realiza un bucle repetitivo y que con END se finaliza el programa.
Los comentarios deben decirnos qué es lo que hace el programa, para qué sirven las variables y explicar las partes críticas o confusas del programas. Algo mas correcto sería:
' EJEMPLO.BAS ' Programa ejemplo creado para el curso de BASIC (QBasic 1.1) ' Víctor R. González, 2/02/2002 DIM cadena AS STRING, i as INTEGER ' En <cadena> se almacenará el texto introducido ' <i> será el contador de caracteres de <cadena> PRINT "Introduce una cadena: " INPUT "", cadena FOR i=1 TO LEN(cadena) ' Muestra cada carácter hasta la longitud de la cadena PRINT MID$(cadena, i, 1) NEXT i END |
Este programa es tan sencillo que no tiene puntos oscuros para comentar.
Es importante indicar para qué se van a usar las variables. Cuando tengamos muchas y pase el tiempo es difícil descifrar para que era cada una.
Cuando hacemos un programa con prisas o por no pensar mucho damos a las variables cualquier nombre. Supongamos un programa con una sección de declaración de variables como la que sigue:
DIM i%, j%, k% DIM x1#, x2#, x3#, x4# DIM a$, b$ ' ... muchas más variables |
¿Cómo podemos acordarnos al cabo de un tiempo de qué era cada variable?. Por eso es conveniente que aparte de indicar para qué sirve cada variable les demos nombres descriptivos:
DIM cuenta.x%, cuenta.y%, cuenta.z% ' Nº de posiciones x, y, z DIM x.minimo#, x.maximo# DIM y.minimo#, y.maximo# ' Esquinas del rectángulo DIM tecla.inicio$, tecla.fin$ ' Pulsaciones de comienzo y fin ' ... etc |