miércoles, 7 de diciembre de 2011

GOTO


Dando inicio a esta iniciativa para difundir conocimiento, con la plena confianza de que en alguna medida contibuiremos al desarrollo de talento, así como la difusión de temas variados de tecnología; quiero compartir con ustedes un par de temas entre los que podemos listar (más no limitar): las mejores prácticas de programación, malos hábitos de los programadores, lenguajes, tendencias y todo aquello que siempre quisiste saber y nunca te atreviste a preguntar en cuanto al desarrollo de sistemas de cómputo se refiere; siempre, por supuesto, desde una perspectiva libre de la plataforma y/o del lenguaje, sin dejar de lado el matiz característico de mi principal experiencia...

Y quise iniciar con una caricatura tomada del sitio http://xkcd.com/, que me ha parecido muy apropiada ya que claramente refleja el espíritu de lo que queremos evitar: ser devorados por nuestras propias creaciones, pues cuando se habla de código, éste puede ser tu bien más preciado y a la vez, tu peor enemigo.

Y si de malos hábitos se trata, el uso del GOTO en cualquier proyecto en el que se trabaje está más que prohibido, al grado de HEREJÍA. En el nombre de todo lo bueno que hay en el mundo: No lo usen.

Pero vamos, la idea de este post es aportar algo más nutritivo y que sí nos aporte valor al momento de escribir.

Una de las dudas que con mayor frecuencia, aunque a la vez tratado con  "poca relevancia", es el criterio de elegibilidad para las diferentes estructuras iterativas de las que disponemos: For, While y Until.

A manera breve y cómo lo podemos encontrar en cualquier bibliografía podemos decir:


  • For: Si se sabe de antemano cuantas veces se repetirá un ciclo.
  • While: Si se requiere que un ciclo se ejecute sólo si se cumple una condición de antemano.
  • Until: Si se requiere que un ciclo se ejecute al menos una vez, hasta que se cumpla una condición.
En alguna conferencia que asistí donde participaron Daniel Seara y David Garza, grandes pioneros evangelizadores en el proyecto iNeta; y lo explicaron más o menos así:

¿Qué hace Chuck Norris para vencer al enemigo? 
 FOR bala = 1 to 100
      Bang
NEXT

El individuo siempre dispara 100 veces aunque tenga que matar sólo a un tipo, sin importar que ya esté tirado contra la pared, todo despedazado.

Otro ejemplo que podemos tomar es Brandon Lee.
WHILE (No esté muerto)
     Bang
WEND

¿Ya está muerto? No, Bang!

Pero si el personaje es una chica: 
DO
    Bang
LOOP UNTIL (¿Está Muerto?)

Y típico que tiene mucho miedo, primero dispara, luego revisa, si no está muerto dispara otra vez.

Aveces es bueno hacer FOR, cuando tengo que utilizar los 100 disparos (Chuck Norris), WHILE igual que Brandon Lee: si abro la puerta y no hay nadie, no disparo. UNTIL es para que al menos una vez lo haga, al menos para ver qué pasa...

Hoy en día, tenemos un elemento que en lo personal me gusta más: recorrer colecciones :-)

FOR EACH x as Object in Collection.
    Bang
NEXT

Hasta aqui llegamos hoy, esperando que con esta breve nota puedan tener una consideración a la hora de escribir líneas de código; y si hay alguna sugerencia de algún tema, dejen su comentario.

Happy Codings!

No hay comentarios:

Publicar un comentario