2011-01-02 16 views
10

Realmente me estoy metiendo en el desarrollo web y, en particular, en JS, así que me preguntaba cuáles eran las mejores prácticas en términos de organización de archivos JS y delegación de responsabilidades. Me pregunte este sentido, ya que haría a mí para tener este tipo de estructura:Organización y diseño de archivos Javascript

  • PÁGINA PRINCIPAL (PHP) (Incluye una referencia a un archivo central JS)
  • PRINCIPAL archivo JavaScript (Incluye una referencia a uno archivo que contiene solo códigos de error en un espacio de nombres o una clase de B)

Si bien esto tiene sentido para mí, me pregunto si estoy equivocado en mi opinión, considerando el hecho de que no se puede incluir naturalmente un archivo JS en otro a menos que hagas un par de trucos (no, no hablo de jQuery). Los trucos pueden significar que esto no se hace simplemente porque no se ajusta a las mejores prácticas para un idioma, pero no siempre es así en términos de problemas entre dominios. Entonces, antes de profundizar demasiado en el diseño descuidado, tenía curiosidad de cómo ustedes dividieron las responsabilidades o simplemente juntaron todo en un solo archivo.

Respuesta

9

La mejor manera de manejar múltiples archivos JavaScript es diseñarlos como módulos. Un archivo JavaScript principal debe actuar como una especie de gestor de arranque que inicia cosas configurando su "espacio de nombres" (citado porque JavaScript no tiene clases). Ejemplo:

var myNamespace = {}; 

En cada uno de sus módulos, extiende el "espacio de nombres". Esto tiene dos ventajas:

  • Minimiza las emisiones globales. En este caso, tendrá un solo global.
  • Módulos fáciles de mezclar y combinar (y reutilizar), si están diseñados correctamente.

también ver esto por detalles de implementación: https://stackoverflow.com/a/3722845/221061

+0

Gracias. Sin embargo, en su caso, supongo que todo el código está en un archivo, ¿lo está limpiando colocando cada uno en su propio módulo correcto? – Ilya

+0

Podrías hacerlo de esa manera, pero ese tipo de derrotas el propósito de los módulos. Yo recomendaría poner cada uno en su propio archivo para que pueda reutilizarlos más tarde (la parte de mezclar y combinar). –

0

un archivo grande JS no es realmente tan "malo" en comparación con el uso de múltiples archivos JS.

Puede comprimirlo en el servidor si le preocupa el ancho de banda, mire en gzip o desinfle.

+1

Oh, no es para nada espacio. Más bien, acerca de mantener todo ordenado y lógico. – Ilya

2

Yo dividiría las clases en archivos JS modulares, haciendo coincidir su dominio. Use el compresor YUI u otras herramientas para comprimir archivos JS y minimizarlos.

Cuestiones relacionadas