nomenclatura convenciones javascript naming-conventions

convenciones - naming javascript



¿Qué es la convención de nomenclatura de nombres de archivo javascript? (5)

¿Deberían los archivos tener el nombre de algo con hyphens.js, camelCased.js o algo más?

No encontré la respuesta a esta pregunta here .


Generalmente prefiero los guiones en minúscula, pero una cosa que aún no se menciona es que a veces es bueno que el nombre del archivo coincida exactamente con el nombre de un solo módulo o función instantánea contenida en él.

Por ejemplo, tengo un módulo revelador declarado con var knockoutUtilityModule = function() {...} dentro de su propio archivo llamado knockoutUtilityModule.js, aunque objetivamente prefiero knockout-utility-module.js.

De manera similar, ya que estoy usando un mecanismo de agrupación para combinar scripts, he tomado la definición de funciones que se pueden instanciar (modelos de vista con plantilla, etc.) cada uno en su propio archivo, estilo C #, para mantener. Por ejemplo, ProductDescriptorViewModel vive por sí mismo dentro de ProductDescriptorViewModel.js (uso mayúsculas para funciones de instanciable).


La pregunta en el enlace que usted dio habla sobre la denominación de variables de JavaScript, no sobre la denominación de archivos, así que olvídese de eso en el contexto en el que hace su pregunta.

En cuanto a la denominación de archivos, es puramente una cuestión de preferencia y gusto. Prefiero nombrar archivos con guiones porque entonces no tengo que buscar la tecla de mayúsculas, como lo hago cuando trato con los nombres de archivos de camelCase; y porque no tengo que preocuparme por las diferencias entre los nombres de archivos de Windows y Linux (los nombres de los archivos de Windows no distinguen entre mayúsculas y minúsculas, al menos a través de XP).

Así que la respuesta, como muchos, es "depende" o "depende de usted".

La única regla que debe seguir es ser consistente en la convención que elija.


No existe una convención oficial, universal , para nombrar archivos JavaScript.

Hay algunas opciones diferentes:

  • scriptName.js
  • script-name.js
  • script_name.js

Todas las convenciones de nomenclatura son válidas, sin embargo , prefiero la convención de nomenclatura sugerida por jQuery (para los complementos de jQuery, aunque funciona para cualquier JS)

  • jquery.pluginname.js

La belleza de esta convención de nombres es que describe explícitamente la contaminación del espacio de nombres global que se agrega.

  • foo.js agrega window.foo
  • foo.bar.js agrega window.foo.bar

Porque dejé el versionado: debería aparecer después del nombre completo, preferiblemente separado por un guión, con puntos entre las versiones principales y secundarias:

  • foo-1.2.1.js
  • foo-1.2.2.js
  • ...
  • foo-2.1.24.js

No tengo conocimiento de ninguna convención en particular para los archivos javascript, ya que no son realmente únicos en la web en comparación con los archivos css o html o cualquier otro tipo de archivo como ese. Hay algunas cosas "seguras" que puedes hacer que hacen que sea menos probable que te encuentres accidentalmente con un problema multiplataforma:

  1. Utilice todos los nombres de archivo en minúscula. Hay algunos sistemas operativos que no distinguen entre mayúsculas y minúsculas para los nombres de archivo y el uso de todas las minúsculas evita el uso involuntario de dos archivos que difieren solo en caso de que no funcione en algunos sistemas operativos.
  2. No use espacios en el nombre del archivo. Si bien esto puede hacerse funcionar técnicamente, hay muchas razones por las cuales los espacios en los nombres de archivo pueden generar problemas.
  3. Un guión está bien para un separador de palabras. Si desea utilizar algún tipo de separador para varias palabras en lugar de un espacio o camelcase como en various-scripts.js , un guión es un separador seguro, útil y de uso común.
  4. Piense en usar números de versión en sus nombres de archivo. Cuando desee actualizar sus scripts, planifique los efectos del almacenamiento en caché del navegador o CDN. La forma más sencilla de usar el almacenamiento en caché a largo plazo (por velocidad y eficiencia), pero las actualizaciones inmediatas y seguras al actualizar un archivo JS es incluir un número de versión en el nombre de archivo o la ruta implementada (como jQuery lo hace con jquery-1.6.2.js ) y luego golpea / cambia ese número de versión cada vez que actualiza / cambia el archivo. Esto garantizará que ninguna página que solicite la versión más nueva reciba la versión anterior desde una memoria caché.

Una posible convención de nomenclatura es usar algo similar al esquema de denominación que usa jQuery. No es universalmente adoptado pero es bastante común.

product-name.plugin-ver.sion.filetype.js

donde el par product-name + plugin también puede representar un espacio de nombres y un módulo . La version y el tipo de filetype son generalmente opcionales.

filetype puede ser algo relacionado con la forma en que se encuentra el contenido del archivo. A menudo se ven:

  • min para archivos minificados
  • custom para archivos personalizados construidos o modificados

Ejemplos:

  • jquery-1.4.2.min.js
  • jquery.plugin-0.1.js
  • myapp.invoice.js