Soy de Java y soy nuevo en JavaScript. He notado que muchos métodos de JavaScript utilizan nombres de parámetros de un solo carácter, como en el siguiente ejemplo.
doSomething(a,b,c)
No me gusta, pero otro desarrollador de JavaScript me convenció de que esto se hace para reducir el tamaño del archivo, y señaló que los archivos de JavaScript deben transferirse al navegador.
Luego me encontré hablando con otro desarrollador. Me mostró la forma en que Firefox truncaría los nombres de las variables para cargar la página más rápido. ¿Es esta una práctica estándar para los navegadores web?
¿Cuáles son las conversiones de nombres de mejores prácticas que se deben seguir al programar en JavaScript? ¿Importa la longitud del identificador y, en caso afirmativo, en qué medida?
eval
, no es seguro (sí,eval
es horrible, pero es parte del estándar y no descarta la compilación estándar para una optimización) y no ayuda en lo más mínimo en la reducción del tráfico, aún así enviar el archivo completoRespuestas:
Encontrará que los propios desarrolladores no están usando nombres cortos de variables. Mientras se desarrollan, utilizan nombres de variables significativos y detallados.
Luego , en el proceso de compilación / lanzamiento, el código que han escrito se ejecuta a través de un minificador / ofuscador con la intención de minimizar el tamaño del archivo, como una mejor práctica para acelerar un sitio web. Este es un opcional paso si usted se preocupa de que mucho sobre el rendimiento. La mayoría de los sitios web pequeños no hacen esto.
Usted , como desarrollador, no debe preocuparse por el proceso de minificación / ofuscación; escriba su código para que sea legible, significativo, bien documentado y bien estructurado. Luego, si te importa tanto el rendimiento (opcional, ¡no lo olvides!), Introduce un minificador / ofuscador en tu proceso de lanzamiento para minimizar el código (eliminar espacios en blanco, nuevas líneas, comentarios, etc.) y ofuscarlo (por ejemplo, acortar la variable nombres). Un buen artículo que explica la ofuscación frente a la minificación se puede encontrar aquí .
Además, Desktop FireFox no truncará el período de nombres de variables . El truncamiento de nombres de variables está ahí para acelerar la descarga de la página. Cuando FireFox obtiene el archivo, ya se ha descargado, por lo tanto, no es necesario hacerlo. Su amigo puede ejecutar un complemento que está haciendo esto; en cuyo caso, dile que lo desinstale, porque es inútil.
Para completar, algunos navegadores (móviles) tienen la opción de usar servidores intermedios, que interceptan las respuestas de los recursos que solicitó, y comprimirlos por usted (lo que podría incluir la minificación de archivos JavaScript). Tenga en cuenta que la compresión se realiza en el servidor (es decir, antes de que haya descargado la página), de ahí el beneficio potencial de descargar un archivo más pequeño, en lugar de hacerlo en el navegador una vez que ya ha descargado el archivo (como se sugiere en la pregunta). Dichos navegadores móviles incluyen Opera Mini y versiones más recientes de Google Chrome (al menos en iOS; no estoy seguro acerca de Android). Para más información, ver aquí .
fuente
No, no todos los navegadores acortarán automáticamente el JavaScript para ayudar con el rendimiento.
Sin embargo, en el caso de JavaScript, no debe sacrificar la legibilidad / mantenibilidad del código para obtener ganancias en la velocidad o la seguridad del procesamiento porque hay herramientas llamadas ofuscadores y otras herramientas llamadas shinkers (o compresores) que fueron diseñados para este propósito.
Recuerde, no optimice previamente. Si su página se carga lo suficientemente rápido y no tiene ningún contenido demasiado sensible en su JavaScript, no se preocupe. Nombra tus variables con nombres significativos. La legibilidad del código es muy importante para la mantenibilidad y rara vez, si es que alguna vez, debe ser sacrificada.
Si desea una referencia a algunas buenas convenciones de codificación de JavaScript, recomiendo el uso de éstos .
fuente
No se preocupe por el tamaño del archivo prematuramente. Si bien siempre es una preocupación, la legibilidad y la mantenibilidad son más importantes.
Dicho esto, probablemente debería estar sirviendo versiones minimizadas (por ejemplo, a través de YUI Compressor ) de sus scripts de todos modos.
Si está interesado en las mejores prácticas para el desarrollo web en general, sugiero leer ¿Qué debe saber todo programador sobre desarrollo web?
fuente
Trabajé en JavaScript durante mucho tiempo.
Teníamos un estándar de nomenclatura que tenía que usar la notación húngara para todas las variables.
Parecía funcionar bien. Sé que hay casos en contra de usar eso, pero funcionó bien para nosotros. Especialmente cuando tienes archivos JavaScript masivos donde necesitas encontrar cosas.
Advierto contra la optimización prematura. Es muy probable que termines con un código desordenado que realmente no se ejecuta mucho más rápido.
fuente
goto
en que las personas repiten sin pensar el mantra 'no uses goto ... no uses goto ...' . La realidad es que es solo una herramienta en su kit de herramientas. Al igual que cualquier herramienta, tiene situaciones en las que es útil y situaciones en las que no es tan útil (o incluso perjudicial). Es como si alguien hubiera tenido una mala experiencia tratando de cortar un trozo de madera con un martillo, y luego proclamó '¡nunca uses martillos, sierras mucho mejor!' . Las generalizacionesLa longitud del identificador no importa. Como han dicho otros, en producción Minification se puede utilizar para reducir el tiempo de descarga del script. De hecho, se debe seguir una convención de codificación / nomenclatura aceptable, especialmente porque JavaScript es un lenguaje peculiar y por mucho tiempo se ha descuidado JavaScript como algo para hacer el trabajo. Si está buscando un lugar para la convención de nomenclatura, la Guía de estilo de JavaScript de Google es un buen lugar. Sugiere,
fuente
Enfurecido por la filosofía del "desarrollador de código limpio" (y dado que ahora sabe por las publicaciones anteriores que, debido a la minimización del tamaño de los nombres de sus variables, tendrá un impacto cero en el rendimiento) solo podría aconsejar:
Escriba su código de manera que cualquier comentario sea superfluo. Eso significa, en lugar de escribir
lo que podría significar realmente cualquier cosa (especialmente en un lenguaje loco tipeado como js;) haces que el código se exprese
En un buen IDE, normalmente nunca escribiría un nombre de variable que dure dos veces - segundos cada vez que escribe algunas letras y simplemente presiona enter desde la finalización automática. Si insiste en escribir cada carácter usted mismo, un buen IDE de todos modos lo notará de un error tipográfico. Este es solo un ejemplo muy superficial, por lo tanto, sugiero encarecidamente (no como una forma de crítica sino como una recomendación honesta) que
Obtenga los libros "Clean Code" de Robert C.Martin y "Pragmatic Programmer" de Hunt / Thomas y nunca más se haga este tipo de preguntas: estará demasiado ocupado trabajando en un servidor de integración continua para automatizar la prueba aburrida -, y construya partes del proceso de desarrollo (incluida la minificación) y concéntrese en la parte divertida, escribiendo un código claramente comprensible que haga cosas geniales.
PD Si necesita ponerse al día con el desarrollo de código javascript de última generación, eche un vistazo al libro de Resig de John "Mr. jQuery" sobre "Técnicas Pro Javascript" inmediatamente después o junto con lo anterior.
fuente