2009-07-19 3 views
7

Estoy usando Firebug para ayudar a descubrir qué está pasando en mi código de JavaScript (+ JQuery). Lo estoy usando principalmente para imprimir toneladas de declaraciones console.log. Probablemente esta no sea la manera más eficiente de mantenerse al tanto del proyecto. Como ha crecido de unas pocas funciones a más de cien, estoy empezando a confundirme acerca de cómo encaja todo. Quiero decir, funciona de alguna manera, pero cuando miro el código ahora casi siento que alguien más lo escribió porque es muy confuso.¿Cómo te mantienes al tanto de un proyecto complejo de JavaScript?

Ahora tengo una gran cantidad de console.log declaraciones que aparecen en la consola cada vez que ejecuto mi aplicación en Firebug y la he estado dejando allí porque siempre termino recreando cuando consigo algo de eso. Esto está haciendo las cosas aún más confusas, creo, que si no tuviera ningún registro. Nunca exploré la depuración real (puntos de interrupción, variables de observación, etc.). ¿Sería esa una buena forma de retomar el control de este proyecto o hay alguna otra herramienta que pueda ayudar?

He pensado en intentar dibujar un diagrama de todo mi CSS y trato de mapear las clases y los ID con las funciones correspondientes en mi JavaScript. Este proyecto utiliza mucha interacción rica y funcionalidad de mostrar/ocultar basada en un conjunto complejo de combinaciones de estados de aplicación, más cerca de lo que podría encontrar en una aplicación Flash/Flex tal vez.

Cualquier sugerencia de herramientas o enfoques que podrían ayudar a recuperar el control de este proyecto sería apreciada. Cuando comencé este proyecto, me sentí muy bien porque se veía tan bien y la gente me felicitaba por lo genial que era, pero ahora parece un fracaso porque no creo que pueda explicar cómo funciona en un entrevista de trabajo si tuviera que hacerlo.

+5

El formateo siempre es apreciado. Esto es realmente wall-o-text. –

+2

De acuerdo. Apliqué algunos saltos de párrafo. – Nosredna

Respuesta

1

Si se está volviendo demasiado complejo, usted está haciendo demasiado, así que manténgalo simple (es decir, divídalo en trozos manejables y reutilizables, así que en lugar de tener un Titanic tiene muchos botes salvavidas compactos). Este podría ser el mejor consejo no técnico que cualquiera pueda brindarle, y es válido.

+1

No hay tal como 'hacer demasiado', necesitas hacer lo que tienes que hacer. –

+1

Boy Estoy contento de que Bricklin y Franston no hayan dejado de funcionar cuando el código de VisiCalc comenzó a volverse complejo. – Nosredna

4

Es posible que desee investigar la introducción de pruebas de unidades reales en su código. Hay una variedad de plataformas de prueba de unidad javacscript disponibles, como fireunit. Si ya tiene FireBug instalado, ¡este es un salto bastante corto hacia la zona de confort feliz!

¡Inténtalo, incluso una pequeña cantidad de cobertura de prueba te ayudará a calmar tu mente!

11

Mantenga su código organizado. Use espacios de nombres para dividirlo en módulos lógicos. También podría ser aconsejable buscar patrones de interacción comunes y desarrollar código genérico reutilizable.

Intento escribir cada nueva característica como un complemento jQuery. Eso me obliga a escribir código reutilizable que no está tan acoplado con el estilo y el marcado.

+0

Esto es realmente un gran comentario, ¡pero me temo que solo los verdaderos iniciados de JavaScript lo apreciarán! +1 – Thunder3

3

Cada vez que un programa comienza a escapársele, debe detenerse y observar de cerca cómo romperlo en pedazos. Piensa en dividir las js en archivos separados para que no tengas que tener todo en tu cabeza a la vez. Cualquier cosa que pueda tratar como "hecho" se puede convertir en una interfaz en la que ya no le importan las agallas.

Todo se trata de ocultar el desastre. Ya sea OO o de procedimiento. Muchas personas tienen el mismo problema con PHP y C que con JavaScript, por lo que puede buscar "espagueti de PHP" y obtener algunos buenos consejos.

1

Use un buen depurador de JavaScript como Firebug y la declaración del depurador para agregar puntos de interrupción a su JavaScript. Solo tenga cuidado de eliminarlos cuando haya terminado.

8

Trabajé en una Web2.0 con muchos javaScript y etc.I `ll dar algunos consejos que me ayudaron:

Trate aptana, ayuda con el código completo, validaciones, etc (se EXT-je, jQuery plugins)

Trate JSLint, me ayuda a adjudicar para resolver problemas especialmente cuando se trata de Internet Explorer.

Pruebe YSlow para ver las calificaciones de su sitio.

Pruebe WATIR, herramienta que podría crear muchos casos de prueba como: hacer clic en cualquier lugar esperar que aparezca algún texto en alguna parte, escribir alguna cadena en algún campo, generar registros.

Recuerde poner Id`s en todas partes que pueda.

Definir un código convenciones podría ayudar. (link1-link2)

[Actualización] que estaba buscando en mi marcador y encontré un muy buen video sobre: ​​Maintainable JavaScript a echar un vistazo.

Espero que estos simples consejos puedan ayudar!

¡Salud!

1

Es posible que desee pensar sobre el uso de GWT.

  • Soporte superior.
  • Clases
  • Posibilidad de refabricación.
  • No hay convenciones de espacios de nombre: use paquetes.

Para obtener una lista más completa de "razones", lea las proporcionadas por el equipo de GWT.

1

Una cosa que me ayudó a manejar una base de código JavaScript compleja que heredé fue el AOP package in dojo.. Utilizándolo, puede obtener una ruta de ejecución de su código muy bien formateada (algo así como el perfil de Firebug, pero en una lista en el orden en que se invocaron los métodos).

No sé si jQuery tiene algo similar, pero podría valer la pena investigarlo porque le saca el pelo a la basura de su base de código con logs que usted puede (o no) tener que eliminar.

Una vez que sepa cómo funcionan las cosas, puede seguir reorganizándolo usando algunos de los excelentes consejos aquí.

Cuestiones relacionadas