2010-10-29 13 views
12

Parece que, para muchos widgets de JavaScript, los autores han hecho un esfuerzo consciente para usar nombres de variables pequeños. Por ejemplo:¿Qué tan importante es usar nombres pequeños de variables en Javascript?

// Instead of... 
this.mousePositions = new Array(); 
// they use... 
this.mp = new Array(); 

Mi pregunta es: ¿qué tan importante es esto en términos de reducir el tamaño total de las solicitudes de archivos javascript? Estoy trabajando para lanzar un widget de javascript al público, que, después de ser minificado, tiene unos 2.8 KB. Sin embargo, debido a que la principal ventaja de este complemento es lo ligero que es, ¿alguien tiene experiencia con si vale la pena realizar y cambiar todos los nombres de variables sensoriales que utilicé con estos nuevos nombres de variable pequeños? Simplemente parece que el código es mucho menos legible de esa manera y será mucho más difícil de mantener.

Gracias por su ayuda!

Charlie

Respuesta

21

¿Qué importancia? no realmente a menos que se utilicen en todas partes, delivering your scripts via gzip compression niega la mayor parte del nombre byte-cost allí.

¿Pero por qué no tener lo mejor de ambas palabras? Use nombres descriptivos al desarrollar (¿por qué castigar a usted mismo?), then minify your scripts como parte del proceso de compilación para obtener nombres compactos pequeños para el código de producción, y una transferencia de tamaño mínimo para el usuario.

+0

¡Genial! Esto ayuda mucho También es un gran alivio saber que puedo obtener los beneficios sin el dolor en los nombres de variables a tope. – candrews

+0

Vale la pena señalar que los diferentes minificadores se comportan ... de manera diferente. Por ejemplo, el compresor YUI es conservador y no minificará los nombres de las propiedades del objeto ('thing.mouseposition' =>' aa') solo en el caso de que se acceda de forma dinámica en otro lugar de tu código ('var foo = 'mouseposition';/*. .. mucho código ... */var pos = cosa [foo] ').El cierre de Google va más allá y minificará nombres como este, pero requiere más configuración para ayudar a unir múltiples archivos de origen donde los nombres de propiedad no se pueden minimizar sin romper el código dependiente en otros módulos. – Day

4

Muchas veces, el autor hará constar la forma más larga, para facilitar la lectura, y luego tener un programa como Google de Closure Compiler, o YUI Compressor para acortarlo, para una transferencia más rápida al cliente.

+0

Genial! Gracias por los enlaces. Los echaré un vistazo. – candrews

0

No debería importar nada. Realmente, la única ventaja es que evite que personas sepan cómo funciona su código. Si está bien con usted para que sea legible, entonces el tamaño de los nombres de las variables es irrelevante. IMO.

3

Un buen minificador acortará los nombres de las variables. Debe conservar una copia legible del código fuente con buenos nombres de variables y espacios en blanco. Entonces debes minificarlo para usar en producción. La copia original se usará para un mayor desarrollo y depuración. Debe usar un buen esquema de nombres para este proceso. Ejemplo: Crea my_program_v1.js luego ejecútalo a través de un minificador como Google's Closure compiler y nombra el resultado my_program_v1.min.js y sirve esa versión en la web.

0

Puede desarrollar sus secuencias de comandos utilizando los nombres más largos y más descriptivos para sus variables y luego minimizar el archivo de secuencia de comandos para la versión de producción. De esta forma, tiene algo muy legible para el desarrollo y algo pequeño (relativamente) y comprimido para enviar a los clientes.

Hay muchas herramientas de minificación disponibles.

Minify jQuery based js files

Cuestiones relacionadas