Foros del Web » Programando para Internet » Javascript »

Reduccion de codigo, increiblemente rara

Estas en el tema de Reduccion de codigo, increiblemente rara en el foro de Javascript en Foros del Web. Hola compañeros de fatiga, Estoy estudiando mucho como reducir mi codigo javascript. Mucho mucho. El caso es que donde mas estoy aprendiendo es en ver ...
  #1 (permalink)  
Antiguo 03/08/2013, 19:13
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Reduccion de codigo, increiblemente rara

Hola compañeros de fatiga,

Estoy estudiando mucho como reducir mi codigo javascript. Mucho mucho. El caso es que donde mas estoy aprendiendo es en ver como me reducen los diferentes compresores de javascript. De una funcion que tengo me la han reducido demasiado... y no la entiendo. Me gustaria que alguien me pudiese explicar letra por letra su significado:

-Mi funcion:
Código Javascript:
Ver original
  1. function k(t)
  2.         {
  3.             if(t=='')t=' :P ';
  4.             if ('console' in self && 'log' in console)console.log(' · '+t);
  5.         }
-Funcion reducida:
Código Javascript:
Ver original
  1. function k(q){""==q&&(q=" :P ");"console"in self&&"log"in console&&console.log(" \u00b7 "+q)}

Me gustaria que me explicaseis (seguir la lista porfis):

1 - ¿No tengo que usar IF en ""==q&&(q=" :P ");?
2 - ¿Que es q&&?

Vaya.. pense que tenia mas dudas, pero es que es tan raro. Jeje.
  #2 (permalink)  
Antiguo 03/08/2013, 20:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Reduccion de codigo, increiblemente rara

buenas...
primero vamos a desglozar el código compactado.

Código:
function k(q){""==q&&(q=" :P ");"console"in self&&"log"in console&&console.log(" \u00b7 "+q)}

// la funcion anterior es la misma que la siguiente ;

function k(q){
	""==q&&(q=" :P "); // primer if del original ;
	"console"in self&&"log"in console&&console.log(" \u00b7 "+q) // segundo if del original ;
}
segundo, hacer una aclaración sobre los whitespace en javascript —sin tomar en cuenta los strings. javascript no muestra tanta atención a los espacios en blancos, lo que le permite al programador escribir el código a su gusto. salvo en ciertas circunstancias, el espacio en blanco es necesario para separar algunos token del lenguaje. particularmente, son necesarios para separar los identificaores del resto de la expresiones. es por ello que en la expresión ""==q&&(q=" :P ") está todo junto. básicamente se puede descomponer de esta forma "" == q && (q = " :P "). como ves, q&& no es nada especial. ahí tienes una variable seguido del operador AND ( && ).

y tercero, sobre no utilizar IF. expr && expr es como un shorthand de un IF. en javascript, los operadores lógicos evalúan una u otra expresión según el resultado de los operandos. en el caso de AND, si el primer operando evalúa a FALSE, entonces el segundo operando no se evalúa. precisamente de ese detalle es que sale el shorthand de IF. en esencia, el primer operando es la condición del IF y el segundo operando es el cuerpo del IF.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 03/08/2013, 20:48
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Reduccion de codigo, increiblemente rara

zerokilled... con cada respuesta me abres un mundo en el javascript. En serio, jeje. Cada vez que me respondes tengo que editar todo mi codigo, demonios!... lo que hacia con 500 lineas ahora lo hago con 20.

Gracias!... estoy aprendiendo un monton.

Que bueno lo del "si el primer operando evalúa a FALSE, entonces el segundo operando no se evalúa"... espero acordarme para SIEMPRE.

:D
  #4 (permalink)  
Antiguo 04/08/2013, 07:35
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 187
Respuesta: Reduccion de codigo, increiblemente rara

@0123 me parece fantástico que veas los resultados de las minimizaciones de códigos y quieras aprender de ellas para mejorar como desarrollador (porque en definitiva te ayudan a aprender leer códigos de otras personas).

Pero mi experiencia de desarrollo de gran cantidad de javascript y entre varios desarrolladores en simultaneo sobre el mismo proyecto, es que estas reducciones las hacemos automáticamente mediante un proceso. Tratando de mantener el código lo mas legible y entendible posible.

Es lógico pensar que si el código lo mantienes tu no deberías tener este problema, pero siempre trato de escribir mi código como si alguién en el futuro, distinto a mi, tuviera que editarlo.

Porque en definitiva esa reducción de que hablas se da antes de enviar el código a producción.

Etiquetas: funcion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:27.