simplificar código en actionscript y javascript

11
Simplificar código en Actionscript y Javascript http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.] Buscar Simplificar código en Actionscript y Javascript Por rabi el 26 de Agosto de 2009 Tecnologia y otros Otros tutoriales por rabi. Desde que tengo uso de razón, mi sueño dorado ha sido aparecer en la portada de Cristalab. Para satisfacer tan caro anhelo, hoy me puse a escribir este tip, que espero que sea de utilidad para quienes programan en ActionScript . Aunque también aplica para Javascript. Son trucos muy básicos para los expertos de la programación, pero que pueden servir a novatos que inician. A lo largo de ya muchos años de programar en AS he ido adquiriendo algunas prácticas que hacen más compacto y legible el código, facilitando así la depuración del mismo. Aquí anoto algunas de mis favoritas: Incrementar o decrementar una variable numérica: Código : i++ //en lugar de i=i+1; i-- //en lugar de i=i-1; i+=2 //en lugar de i=i+2; En un condicional if, para un valor Booleano Código : if(booleano==true){} //se puede sustituir simplemente con if(booleano) Así mismo, si sólo ponemos la variable en el argumento del if, nos detecta si esa variable tiene un valor: Código : if(variable) //devuelve true si tiene un valor; false si es igual a undefined o null Foros Blog Tutoriales Cursos Videotutoriales Comic Entra o Registrate

Upload: gustavo-erazo

Post on 08-Jul-2016

34 views

Category:

Documents


6 download

DESCRIPTION

Técnicas para la simplificación de código en javascript y action script

TRANSCRIPT

Page 1: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

Buscar

Simplificar código en Actionscript y JavascriptPor rabi el 26 de Agosto de 2009 Tecnologia y otros Otros tutoriales por

rabi.

Desde que tengo uso de razón, mi sueño dorado ha sido aparecer en la portada de Cristalab. Para satisfacer tan caro anhelo, hoy me puse a escribir este tip, que espero que sea de utilidad para quienes programan en ActionScript. Aunque también aplica para Javascript. Son trucos muy básicos para los expertos de la programación, pero que pueden servir a novatos que inician.

A lo largo de ya muchos años de programar en AS he ido adquiriendo algunas prácticas que hacen más compacto y legible el código, facilitando así la depuración del mismo. Aquí anoto algunas de mis favoritas:

Incrementar o decrementar una variable numérica:

Código :

i++ //en lugar de i=i+1;

i-- //en lugar de i=i-1;

i+=2 //en lugar de i=i+2;

En un condicional if, para un valor Booleano

Código :

if(booleano==true){} //se puede sustituir simplemente con

if(booleano)

Así mismo, si sólo ponemos la variable en el argumento del if, nos detecta si esa variable tiene un valor:

Código :

if(variable) //devuelve true si tiene un valor; false si es igual a

undefined o null

Foros Blog Tutoriales Cursos Videotutoriales Comic

Entra o Registrate

Page 2: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

Omitir las llaves {} en sentencias cortas

Muchas veces escribimos sentencias de un solo renglón asociados a un comando if o a un loop for. Si es el caso, podemos omitir las llaves e incluso poner todo el condicional if en un solo renglón. Ejemplos:

Código :

if(unValor>0) trace ("unValor")

else trace("nada");

for (i==0;i<10;i++) trace(i);

Asignación de variables condicionalmente (forma corta de if)

Esta es una de mis favoritas. Va el ejemplo:

Código :

//En lugar de

if (valor1==0){

valor2=1;

} else{

valor2=0;

}

//Ponemos

valor2=(valor1==9)?1:2;

Múltiples comandos en una sola línea

Esta no es una práctica muy recomendable porque pierde legibilidad el código. Sin embargo, yo la uso mucho para poner comandos trace, de tal manera que escribo una sola línea que después voy a borrar sin que me desmadre el resto del código.Hay que recordar que AS interpreta el punto y coma como fin de línea. Así, podemos poner:

Código :

x=1;y=1;m=0;trace(x+" "+y+" "+m);

Uso de for...in y for each...in en lugar de loops for

Page 3: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

Durante muchos años, por no investigar la forma de uso de otras opciones, utilicé exclusivamente el loop for "simple" para efectuar bucles. Las otras opciones son más prácticas en muchos casos.

for ... in devuelve los "nombres" de los elementos en un objeto o array:

Código :

var miArray=["a","b","c"];

for(var key:String in miArray)

trace("miArray[" + key + "] = " + miArray[key]) // devuelve

miArray[0] = a y así

for each ... in devuelve el objeto contenido

Código :

for each (var e:* in miArray)

trace(e) //devuelve a, b, c

Uso de with

Nos evita la escritura repetitiva del nombre de un objeto. Ejemplo:

Código :

var miArray:Array=new Array()

miArray['a']="Letra A";

miArray['b']="Letra B";

miArray['c']="Letra C";

//Normal

trace(miArray.a) //Letra A;

trace(miArray.b) //Letra B;

trace(miArray.c) //Letra C;

//con "with"

with (miArray){

trace(a) //Letra A;

trace(b) //Letra B;

trace(c) //Letra C;

}

Page 4: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

Cómo crear una maquina de estados en Actionscript

Pathfinding en Actionscript usando Waypoints

Enviar mail HTML con Flash-PHP, buscador de dominio y plantillas

Por nestorrente el 26 de Agosto de 2009

rabi :

Asignación de variables condicionalmente (forma corta de if)

Esta es una de mis favoritas. Va el ejemplo:

Código :

//En lugar deif (valor1==0){ valor2=1;} else{ valor2=0;}//Ponemosvalor2=(valor1==9)?1:2;

Te recomiendo que pongas exactamente el mismo ejemplo, ya que los 2 códigos que has puesto hacen cosas "distintas", y eso al principio me despistó.

No conocía esa forma de condición, pero acabo de experimentar, y he llegado a la conclusión de que la sintaxis es

Código :

Envia un comentario (14)

Creo que todos los tips funcionan tanto en AS2 como en AS3. Si alguien tiene otra fórmula ahorracódigo, les agradeceré que las compartan.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Page 5: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

condicion?valor_verdadero:valor_falso

Se podría utilizar también para un trace, usando:

Código :

var boole:Boolean = truetrace(boole?"Verdadero":"Falso") //Devuelve "Verdadero"

Que corresponde a:

Código :

if(boole){ trace("Verdadero")}else{ trace("Falso")}

El resto está bien explicado, aunque no comparto ni lo de Omitir las llaves {} en sentencias cortas ni lo de Múltiples comandos en una sola línea (que ya veo que tú tampoco eres muy dado a utilizar esto).

Por el resto bien, conocía la mayoría de las cosas, pero no conocía las que he mencionado en este post (ya he dicho que 2 no me gustan, pero está bien saber que se pueden utilizar!)

Está bien el tip

Por rabi el 27 de Agosto de 2009

nestorrente :

Te recomiendo que pongas exactamente el mismo ejemplo, ya que los 2 códigos que has puesto hacen cosas "distintas", y eso al principio me despistó.

Lo siento, es un error de dedo. Donde dice

Código :

valor2=(valor1==9)?1:2;

debe decir

Código :

Page 6: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

valor2=(valor1==0)?1:2;

Efectivamente, la sintaxis es la que marcas.Ahora bien, la duda que tengo es por qué no estás de acuerdo en omitir las llaves. Indentando correctamente el código sigue siendo bastante legible, y te ahorra mucho tiempo al teclear en los teclados en español.En cuanto a los múltiples comandos, ocasionalmente los utilizo cuando son varias asignaciones muy

cortas, como en el ejemplo que se marca. También me ahorra tiempo en el scroll

Por M@U el 27 de Agosto de 2009

Un detalle.

El hecho de que agregues múltiples cosas sin ningún espacio entre ellas, y amontonarlas en una sola linea NO significa que el código se haya optimizado. Mucho menos significa que se haya vuelto mas legible... De ahí en mas parece un buen aporte.

Por isidoro el 27 de Agosto de 2009

rabi :

nestorrente :

Te recomiendo que pongas exactamente el mismo ejemplo, ya que los 2 códigos que has puesto hacen cosas "distintas", y eso al principio me despistó.

Lo siento, es un error de dedo. Donde dice

Código :

valor2=(valor1==9)?1:2;

debe decir

Código :

valor2=(valor1==0)?1:2;

Efectivamente, la sintaxis es la que marcas.Ahora bien, la duda que tengo es por qué no estás de acuerdo en omitir las llaves. Indentando correctamente el código sigue siendo bastante legible, y te ahorra mucho tiempo al teclear en los teclados en español.En cuanto a los múltiples comandos, ocasionalmente los utilizo cuando son varias asignaciones

Page 7: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

muy cortas, como en el ejemplo que se marca. También me ahorra tiempo en el scroll

Hola,la corrección sigue teniendo un fallo, sería:

Código :

//En lugar de if (valor1 == 0) { valor2 = 1;} else { valor2 = 0;}//Ponemos valor2 = (valor1 == 0) ? 1 : 0;

Hay otra errata en esta línea:

Código :

for (i==0;i<10;i++) trace(i);//Debería ser con un sólo signo igual:for (i=0;i<10;i++) trace(i);

En cuanto a lo de omitir las llaves, personalmente creo que sólo mejora si el if o for va a quedar en una línea, pero no si metemos un else

Código :

if (unValor > 0) trace("unValor");for (i == 0; i < 10; i++) trace(i);

Y en cuanto a meter múltiples comandos en una línea, creo que hay ciertos casos en los que mejora la legibilidad, por ejemplo:

Código :

x1 = 1; y1 = 0; z1 = 0;x2 = 1; y2 = 1; z2 = 0;x3 = 1; y3 = 0; z3 = 1;

Creo que es más fácil reconocer así una matriz identidad 3x3 que si lo ponemos todo en una línea.

Por nestorrente el 27 de Agosto de 2009

isidoro :

Y en cuanto a meter múltiples comandos en una línea, creo que hay ciertos casos en los que mejora la legibilidad, por ejemplo:

Page 8: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

Código :

x1 = 1; y1 = 0; z1 = 0;x2 = 1; y2 = 1; z2 = 0;x3 = 1; y3 = 0; z3 = 1;

Creo que es más fácil reconocer así una matriz identidad 3x3 que si lo ponemos todo en una línea.

Cierto, en ese caso sí que me parece más legible, no lo había pensado.

Y lo de no utilizar llaves no lo comparto por lo mismo que han dicho por ahí arriba, porque si vas a meter un else queda un poco mal. No sé, siempre he preferido poner las llaves y

las correspondientes tabulaciones. Es cuestión de costumbre, nada más

Por isidoro el 27 de Agosto de 2009

Por cierto, he cometido una errata al poner la matriz identidad (esto del copy - paste es lo que tiene

).

Código :

x1 = 1; y1 = 0; z1 = 0;x2 = 0; y2 = 1; z2 = 0;x3 = 0; y3 = 0; z3 = 1;

Por rabi el 27 de Agosto de 2009

Estuve revisando las recomendaciones (best practices) de este sitio y me encontré la línea que transcribo:

Adobe :

If the various branches of an if/else statement involve single statements, don't make them into blocks.Do this:if (flag) doThing1();

Not this:if (flag){ doThing1();}

Page 9: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

And this:if (flag) doThing1();else doThing2():

Not this:if (flag){ doThing1();}else{ doThing2();}But if any branch has multiple statements, make all of them into blocks.

Por lo demás, es un documento muy interesante de leer.

Por isidoro el 28 de Agosto de 2009

Muy bueno el enlace, sobre todo me quedo con estas dos cosas:

1. La invitación a no usar más los sufijos del tipo "_mc" sino estandarizar el uso de notación Camel Case.

2. La forma de indicar un array de tipos de datos (como AS no los soporta, así por lo menos se sabe desde un principio qué es lo que van a contener):

Código :

var a:Array /* of String */ = [];

En el tema de poner o no varias sentencias en una línea, tiene razón en que poniéndolo en varias puedes usar breakpoints en cada una de ellas.

Y en cuanto a usar o no llaves en los if, ahora que lo veo me parece mucho más legible usando indentación en caso de que se omitan (aunque así los códigos van a acabar pareciéndose más a

Python que a AS3 ):

Código :

if (flag) doThing1();else doThing2();

Page 10: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

Por Freddie el 30 de Agosto de 2009

Bueno, felicitaciones rabi. Tu tip está en portada.

Por loe herrera el 26 de Noviembre de 2010

buena pagina

Por sarita hernandez el 11 de Enero de 2011

muy buenos tips los de este espacio, lo k pasa es k soy nueva en flash y no c aun como declarar un valor de tipo numerico y k no se vea de tipo texto si pueden ayudarme se los agradecere infinitamente...

Por CLAnonimo el 17 de Enero de 2011

Felicidades muuuy útil

Por Dany el 02 de Marzo de 2011

Hola. Muy bien porque te hayas querido compartir tus conocimeientos. Pero antes de postear deberías chequear bien de no cometer erratas. Porque para los que no estamos bien familiarizados con la sintaxis de lenguajes scripts esos tips terminar por producir efecto contrario al esperado. Saludos

Por Dr Chos el 14 de Marzo de 2011

Hola, estoy buscando un programa para minimizar el código de mis archivos Java Script. Sé que hay programas que lo hacen pero no sé cómo buscarlos.

A lo que me refiero con minimizar es que una vez que tienes tu código de Java Script como este: for (valor1=valor2; valor1<valor3;valor1++){ valor4="hola " + valor1;

Page 11: Simplificar Código en Actionscript y Javascript

Simplificar código en Actionscript y Javascript

http://www.cristalab.com/tutoriales/simplificar-codigo-en-actionscript-y-javascript-c77942l/[23/10/2015 11:03:53 a.m.]

Publica tu comentario

Tu nombre:

Tu comentario:

Publicar

}

Te lo simplifica de esta manera: for(a=b;a<c;a++){d="hola "+a;}

Para que de esta manera la descarga sea mucho más ágil. Alguien sabe algo al respecto?