Mini-AS2-coding-hysteria

Ya van una cuantas veces que tengo que escribir una guía de estilo para AS2. Dejo por aquí unos apuntes:

  • No usar _root sino es absolutamente necesario*.
  • No usar variables globales sino es absolutamente necesario*.
  • No picar a fuego NINGUNA URL a ningún recurso. Usar un xml de configuración o FlashVars.
  • Usar el prefijo “fv_” para todas las FlashVars, así se reconocen fácilmente en el código.
  • No dejar traces por el código, sólo añaden ruido a la consola de log. Dejar sólo trazas de error.
  • NO extender de MovieClip, utilizar composición en su lugar**.
  • Declarar el tipo de TODAS las variables.
  • Declarar el tipo devuelto por TODOS los métodos. Usar Void sino devuelve nada.
  • Compilar con -strict en MTASC siempre que sea posible*.
  • Trata de que sólo haya un return por método*.
  • Intenta que todos los métodos y variables posibles sean privados. Pasar de privado a público es fácil. De público a privado se puede convertir en un infierno.
  • Para ayudar a los demás a leer tú código:
    • Delimita físicamente una zona de la clase como pública y otra como privada. Así es mucho más fácil ver qué métodos se pueden utilizar (API) y cuáles no.
    • Utiliza la tabulación de una forma constante y coherente.
    • Finaliza todas las líneas con “;”.
    • Las líneas en blanco son gratis. Por favor, utilízalas.
    • En el código comenta el “por qué” y no el “qué”:
      • var res:Number = a + b // el resultado es a+b. MAL
      • var comienzoIndice:Number = 1 // el indice empieza en uno por xxx razón. BIEN

* Hay muy pocas veces en las que sea absolutamente necesario. Repito: ¡muy pocas!
** Pronto en sus pantallas mi gran chapa sobre por qué no extender de MovieClip.

He decir que estas son mis normas actuales y que no siempre han sido las mismas. Aunque he que reconocer con el tiempo cada vez cambian menos .

Se admiten comentarios y propuestas alternativas, por supuesto.

¡Salud!

pd: si no haces las cosas como yo, te odio : )

Educa al friki

9 Responses to “Mini-AS2-coding-hysteria”

  1. Cay Says:

    >>Trata de que sólo halla un return por método.
    Porque? muchas veces sirve bastante para ahorrar loops superfluos y/o recursos…

  2. Zárate Says:

    La idea es pasar de:

    function wadus(val:String):Void{
    var defaultReturn:String = "";
    for(var x:Number=0;x<array.length;x++){
    if(val == array[x]){
    return val;
    }
    }
    return defaultReturn;
    }

    A lo siguiente

    function wadus(val:String):Void{
    var defaultReturn:String = "";
    for(var x:Number=0;x<array.length;x++){
    if(val == array[x]){
    defaultReturn = val;
    break;
    }
    }
    return defaultReturn;
    }

    El ejemplo puede parece trivial, pero cuando hay funciones gigantes (y por desgracia las hay), es muy fácil pasar por alto en mitad del código una línea del estilo:

    if(val1 == val2){ return null; }

    El código por debajo de esa línea no se ejecuta (si se cumple la condición, claro está), y muchas veces no es fácil de ver.

  3. Sputnik Says:

    Esta frase pasa a los anales: “Las líneas en blanco son gratis. Por favor, utilízalas.”

  4. SKrTs Says:

    A mi me gusta, Sputnik duerme un poco

  5. Cay Says:

    Entiendo, pero imagina este caso:
    function wadus():Boolean{
    var defaultReturn:Boolean= false;
    for(){
    if(){
    defaultReturn = true;
    break;
    }
    }
    if(!defaultReturn) {
    for() {
    if(){
    defaultReturn = true;
    break;
    }
    }
    if(!defaultReturn) {
    for() etc...
    etc...
    etc...
    etc...
    }

    }
    return defaultReturn;
    }

    versus

    function wadus(){
    for() if() return true;
    for() if() return true;
    for() if() return true;
    return false;
    }

    No se si se me entiende… :P

  6. Cay Says:

    uy, se me olvido declarar el tipo de la 2da funcion, sorry :P

  7. Zárate Says:

    Veo lo que comentas, y en algunas situaciones puede hasta ayudar a la legibilidad, pero la mayoría de las veces no pasa. Por eso en las directrices pone “Trata de..” y no “Ni se te ocurra” :)

  8. Cay Says:

    Ya ya… que? crees que eres el único que puede dar la chapa? xDDD
    Buena lista por cierto ^^

  9. kassel Says:

    De lo mejor, gracias por los apuntes muy amable por compartir tu experiencia.

Leave a Reply