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 clase
var 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 clase
Undermedia.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();
}
No hay comentarios.:
Publicar un comentario