2011-08-04 11 views
7

Tengo un problema con mis aplicaciones jquery por completo. Cuando la aplicación es pequeña, es genial. Pero cuando es bastante grande, es un desastre. Funciones anidadas, llamadas ajax, selectores, manipulaciones dom. Parece que no puede contenerse, especialmente cuando tiene una lógica compleja.¿Cómo organizar la aplicación jquery compleja?

El enfoque funcional no me ayuda mucho. Y no veo cómo usar las clases y la herencia aquí en la práctica. ¿Cómo organizar el código? He leído muchos artículos sobre herencia prototípica y pseudo clásica, pero solo explican cómo funcionan las cosas, como cómo se puede heredar 'Persona' de 'Humano' o algo así. ¿Cómo puedo usarlo en la vida real?

+0

+1 Exactamente cómo me siento ahora. ¿Algo que compartir desde que hiciste esta pregunta? – theblang

Respuesta

6

Encuentro dos cosas que realmente ayudan a organizar javascript. Objetos de uso único para encapsulación (http://www.dustindiaz.com/namespace-your-javascript) y dos, escriba una biblioteca para tareas comunes. Las estrategias de refactorización normales funcionan para javascript, funciones de extracción, commonize, si tienes 4 funciones que hacen casi lo mismo, cámbialas a una sola función que pueda manejar los cuatro casos.

+0

¡+1 no podría estar más de acuerdo! Creo firmemente que necesitas organizar JS como cualquier otro código en tu proyecto. Con demasiada frecuencia, los desarrolladores son culpables de rechazar el código JS y relegarlo al sótano. ¡Yo solía ser uno de esos! Una cosa cambió mi opinión sobre este lenguaje en gran parte malentendido fue la presentación del título de Douglas Crockford "Javascript: las partes buenas" que se puede encontrar aquí [enlace] (http://www.youtube.com/watch?v=hQVTIJBZook) –

3

Cuando planifico una gran aplicación jQuery en la que estoy trabajando actualmente, encontré this post de Addy Osmani muy útil.

Revelación total, sin embargo: terminamos colgando la mayor parte de la red troncal de nuestra aplicación de un núcleo YUI3. Todo nuestro código de "controlador" está escrito en jQuery, pero el modelo de datos frontend es YUI3.

+0

Awesome, cheers. – aaaidan

Cuestiones relacionadas