2012-01-18 7 views
5

¿Qué debo usar para administrar el número creciente de archivos JavaScript en mi aplicación?Administrar la complejidad de JavaScript en un proyecto grande

Estamos construyendo una aplicación django con varias aplicaciones. Cada aplicación tiene una funcionalidad diferente, y tiene que ser renderizada en tres modos diferentes (PC, tableta, móvil). Hay muchas cosas que suceden en JavaScript: administración de datos recibidos del servidor, manejo de eventos de usuario, inyección de fragmentos HTML y carga de subcomponentes. Parte de la funcionalidad se comparte entre las aplicaciones y los modos de visualización, pero a menudo tiene sentido escribir funciones específicas (por ejemplo, los eventos de desplazamiento y clic pueden tener que manejarse de forma diferente en un diseño de PC vs. un diseño de tableta), así que estamos agrupando esto en archivos basados ​​en la aplicación/diseño/función.

hasta un punto que estábamos usando una estructura de archivo plano con el nombramiento de diferenciar tipos de archivos:

ui.common.js 
ui.app1.pc.handlers.js 
ui.app1.pc.domManupulators.js 
ui.app1.tablet.js 
ui.app2.pc.js 
... 

En este momento, sin embargo, como el número de aplicaciones (y los casos de esquina) crece de esta manera es rápido convertirse en unusuable (nos estamos acercando a más de 20 archivos y esperando tal vez de 40 en el momento en que hemos terminado), por lo que estamos poniendo todo en los directorios de este modo:

js/ 
    common/ 
    core1.js 
    ajax2.js 
    app1/ 
    tablet.js 
    pc.js 
    app2/ 
    mobile.js 
    ... 

he estado buscando en JavaScriptMVC para ayudar con esta. Si bien ofrece herramientas útiles, no parece tener nada que haga específicamente mejor la gestión de nuestra biblioteca gigante de JavaScript. Estamos expandiendo nuestro equipo de desarrollo pronto y la mantenibilidad del código es muy importante.

¿Hay algo que pueda hacer nuestra vida más fácil? ¿Hay algún hábito/regla general que use en su trabajo que pueda aliviar esto?

+1

¿Qué hay de malo en el diseño js/{app_name}/{device_type}? parece imitar la configuración basada en la aplicación de django y es muy clara y organizada. ¿Hay alguna manera en la que te falta? – dm03514

+0

@ dm03514: No tiene nada de malo, solo me pregunto si hay una mejor manera. – Goro

Respuesta

1

Por lo general, sería preferible agrupar bibliotecas de forma común (como su segundo ejemplo). Sin embargo, lo más importante es asegurarse de tener un espacio de nombres o hacer que sean únicos, de modo que es poco probable que obtenga colisiones de nombres con otros scripts potenciales.

+0

Los espacios de nombres son muy importantes, prácticamente no podríamos gestionar el código sin ellos. Ver mi publicación sobre espacios de nombres: http://stackoverflow.com/questions/8916629/are-herehere-any-dangers-associated-with-using-javascript-namespaces – Goro

2

Backbone.js se utiliza para organizar aplicaciones pesadas de javascript en un patrón de estilo MVC. Te llevará algo de aprendizaje, pero definitivamente es algo que querrás investigar y aprender un poco incluso si no terminas usándolo.

Se utiliza en quite a few pretty impressive projects

Y, aquí hay un sitio para learn more con tutoriales.

Cuestiones relacionadas