proginternet.com Programacion Internet
  • Actionscript: mejorando la presentacion del codigo: 1ra parte

    Una correcta legibilidad facilita las tareas de codificar y mantener nuestras aplicaciones.

    Una manera de mejorar la legibilidad de nuestro código es al usar convenciones de nombres.

    Variables:

    • El nombre de la variable debe permitir identificar rápidamente su tipo (Entero, arreglo, etc) y su alcance (Local, global )
    • No usar el mismo nombre de variable en diferentes casos, esto puede causar confusión.
    • Usar abreviaciones claras y reconocidas, evitar por ejemplo usar la abreviatura sec, que puede significar sección o secundario.
    • Si es necesario usar un nombre que contenga varias palabras, cada palabra se debe distinguir usando una letra mayúscula o un separador como “_”.
    • Debe ser lo más descriptivo posible. Por ejemplo una variable que recoge datos de usuario sería mejor llamarla userData en lugar de únicamente data.
    • Usar nombres lo mas cortos posibles, claro mientras sean descriptivos.
    • Usar “Strict data typing” es decir definir el tipo de dato de la variable. Por ejemplo:
    var datosUsuario:String = new LoadVars();
    • En contadores usar variables de una sola letra (i,n,j).
    • Iniciar las variables con una letra minúscula.

    Constantes:

    • La constante debe ser escrita usando solo letras mayúsculas.
    • Separar las palabras con guión bajo “_”.

    Variables booleanas:

    • Le debe anteceder la palabra “es” o “is” en ingles. Ya que solo puede ser verdadero o falso.
    var isMujer:Boolean;

    Nombres de funciones y métodos

    • Usar nombres descriptivos.
    • Cada palabra que compone el nombre de la función debe ser distinguida usando una letra Mayúscula o un separador como “_”.
    • Describe el valor que retorna y la operación que realiza. Por ejemplo obtenerNombre().

    Clases y objetos

    • El nombre de la clase debe empezar con una letra mayúscula.
    • Cada palabra se debe distinguir usando una letra Mayúscula
    • Usar sustantivos para nombrarlas instancias, por ejemplo NuevoUsuario.
    • Usar nombres en singular, por ejemplo Usuario.
    • No usar el nombre de la clase en los atributos, pues genera redundancia. Por ejemplo usuario.usuarioEdad seria mejor edad únicamente.
    • Cuando incluyamos verbos debemos hacerlo en infinitivo. Por ejemplo Correr en lugar de corriendo.

    Paquetes:

    • Usar el dominio reverso para nombrar los paquetes. Por ejemplo com.undermedia.
    • Agrupar las clases del paquete por funcionalidad.
    • Cada palabra de se debe distinguir usando una letra Mayúscula

    Interfaces

    • El nombre de la clase debe empezar con una letra mayúscula.
    • Usar adjetivos, por ejemplo Imprimible.

    Convenciones para comentar nuestro código

    Los comentarios en nuestro código deben ayudar a entender al como y porque de algún segmento complejo.

    • No comentes lo obvio.
    • Para comentar varias lineas usa /**/ y para una sola //
    • Usa un comentario de cabecera para decribir aspectos como: Nombre, version, fecha, autor descripción.

    Convenciones de la codificación

    Uno de los aspectos más importantes de la codificación es la concistencia.

    • Manten el código en un solo lugar. Generalmente el primer Frame de la línea del tiempo.
    • Colóca el código en la primera capa y nombralo “ActionScript”.
    • No incluyas código dentro de los objetos como botones, instancias de movieClips. Por ejemplo evita:
    on (release) {// Do something.}

    En lugar usa:

    myBtn.onRelease = function() {// Do something.};
    • Evita el uso de rutas absolutas, es decir evita el uso de “_root”. Usa this, this._parent, o _parent en lugar de _root.
    • Usa “_lockroot” para solucionar problemas asociados con un incorrecto uso de “_root”. Por ejemplo si cargas una movieClip y se para inesperadamente, usa:
    this._lockroot = true;
    • Usa la palabra “this” aunque tu código funcione sin este. Esto facilita que el código sea mas entendible y legible.
    • Consideraciones de la palabra “this” en clases.
      • Para referirte a la clase dentro de una función o método anidado, crea una referencia local a la clase. Por ejemplo.
    class Undermedia{var propiedad:String;function Undermedia(){//Refernecia a la clasevar thisObj:Undermedia = this;function funcionAnidada(){thisObj.propiedad}}}

    Estructurando una clase

    • Usa un comentario de cabecera para decribir aspectos como: Nombre de la clase, version, fecha, autor, descripción.
    • Incluye archivos externos si son necesarios.
    • Coloca todas tus variables estáticas.
    • Coloca tus atributos, primero los públicos y luego los privados.
    • Declara el contructor de la clase.
    • Agrupa tus métodos por funcionalidad
    • Coloca los métodos get/set.

    Guias para crear una clase

    • Colocaca cada declaracion en diferentes lineas, es decir evita:
    var nombre:String, apellido:String;playBtn.onRelease = playBtn.onRollOut = playsound;
    • Inicializa las variables locales cuando son declaradas, mientras que los atributos de clase deben ser inicializados con valores por “default” o con null esto optimiza el rendimiento el evitar mantener variables no utilizadas en memoria.
    • Declara las varibles antes de usarlas, esto incluye los “loops”.
    • Evita nombrar variables locales con el mismo nombre que las de clase
    • Define tus métodos o atributos públicos cuando lo requieran sino definelos como privados.
    • No abuses de los getters / setters, si algo va a ser leido únicamente solo crea el getter mas no el setter.
    • Usa un prefijo para el this aunque no sea necesario esto facilita identificar si el atributo a método pertenecen a la clase. Por ejemplo
    class Undermedia{var propiedad:String;function Undermedia(){//Refernecia a atributo de claseUndermedia.propiedad;}}
    • Usa la palabra “Super” para referirse a un metodo o propiedad de una clase heredada, por ejemplo:
    class Mamifero{private var numPatas:Number;function getNumPatas():Number{return this.numPatas;}function setNumPatas(paramPatas):Void{this.numPatas = paramPatas;}}
    
    class Humano extends Clotes{function getPatas(){return super.getPatas();}
    
    }
    • No abuses con el uso de with, esto puede dificultar la legibilidad de tu código, al desconocer el alcance. Por ejemplo (Ejemplo extraido de la fuente).
    this.attachMovie("circleClip", "circle1Clip", 1);with (circle1Clip) {_x = 20;_y = Math.round(Math.random()*20);_alpha = 15;createTextField("labelTxt", 100, 0, 20, 100, 22);labelTxt.text = "Circle 1";someVariable = true;}

    Se lee mejor:

    this.attachMovie("circleClip", "circle1Clip", 1);circle1Clip._x = 20;circle1Clip._y = Math.round(Math.random()*20);circle1Clip._alpha = 15;circle1Clip.createTextField("labelTxt", 100, 0, 20, 100, 22);circle1Clip.labelTxt.text = "Circle 1";circle1Clip.someVariable = true;

    Una excepcion a la regla es cuando usas al API de dibujo pues se llama continuamente a los mismos métodos, por ejemplo:

    this.createEmptyMovieClip("rectangleClip", 1);with (rectangleClip) {lineStyle(2, 0x000000, 100);beginFill(0xFF0000, 100);moveTo(0, 0);lineTo(300, 0);lineTo(300, 200);lineTo(0, 200);lineTo(0, 0);endFill();}
    Atom Feed (Agrega los articulos en tu sitio)

    Originalmente escrito en Charles ProgInternet.com

    Published on August 5, 2008 · Filed under: Uncategorized;
    No Comments

Leave a Reply

You must be logged in to post a comment.