7
votes

Comment restez-vous au-dessus d'un projet JavaScript complexe?

J'utilise Firebug pour vous aider à comprendre ce qui se passe dans mon code JavaScript (+ jQuery). Je l'utilise principalement pour imprimer des tonnes de console.log . Ce n'est probablement pas le moyen le plus efficace de rester au-dessus du projet. Comme il est passé de quelques fonctions à une centaine de cent, je commence à se confondre de la manière dont tout convient ensemble. Je veux dire, ça marche d'une manière ou d'une autre, mais quand je regarde le code maintenant, j'ai presque l'impression que quelqu'un d'autre l'a écrit parce que c'est tellement déroutant.

maintenant j'ai une quantité folle de console.log apparaissant dans la console chaque fois que j'exécute mon application en Firebug et que je l'ai laissé là parce que je finis toujours à le recréer quand je prends Certains d'entre eux dehors. Cela rend les choses encore plus confuses, je pense que si je n'avais pas de journalisation du tout. Je n'ai jamais vraiment exploré de vrais débogage - points d'arrêt, des variables de veille, etc. - serait-ce un bon moyen de reprendre le contrôle de ce projet ou d'y avoir des autres outils qui pourraient aider?

J'ai pensé à essayer de dessiner un diagramme de tous mes CSS et d'essayer de faire carter des classes et des identifiants aux fonctions correspondantes de mon JavaScript. Ce projet utilise beaucoup d'interactions riches et de fonctionnalités d'affichage / masquez / masquez sur un ensemble complexe de combinaisons d'états d'application, plus près de ce que vous trouverez dans une application Flash / Flex peut-être.

Toute suggestion d'outils ou d'approches pouvant aider à reprendre le contrôle de ce projet serait appréciée. Quand j'ai commencé ce projet, je me suis senti vraiment bien à ce sujet parce que ça avait l'air si bien et que les gens me donneraient des compliments sur la façon dont c'était cool, mais maintenant, cela ressemble à un échec parce que je ne pense pas pouvoir même expliquer comment cela fonctionne dans un Entretien d'embauche si je devais.


2 commentaires

Le formatage est toujours apprécié. C'est vraiment Wall-o-text.


D'accord. J'ai pris un coup de poignard à certains pauses de paragraphe.


8 Réponses :


1
votes

Si cela devient trop complexe, vous faites trop, gardez-la simple (c'est-à-dire: rompez-la dans des morceaux gérables et réutilisables, donc au lieu d'avoir un titanic, vous avez de nombreux canots de sauvetage compacts). Cela pourrait être le meilleur conseil non technique que quiconque puisse vous donner - et c'est valide.


2 commentaires

Il n'y a pas tel que faire trop , vous devez faire ce que vous devez faire.


Garçon, je suis content de Bricklin et Frankston n'a pas cessé de travailler lorsque le code VisicalC a commencé à devenir complexe.



4
votes

Vous voudrez peut-être investir à introduire des tests d'unité réels dans votre code. Il existe une variété de plates-formes de test d'unité Javacscript disponibles, telles que fousunit . Si vous avez déjà Firebug installé, c'est un saut joli court à la zone de confort heureuse!

Donnez-lui un coup, même de petites quantités de couverture de test unitaire aideront à atténuer votre esprit!


0 commentaires

11
votes

Gardez votre code organisé. Utilisez des espaces de noms pour la casser dans des modules logiques. Il pourrait également être sage de rechercher des modèles d'interaction courants et de développer un code réutilisable générique.

J'essaie d'écrire chaque nouvelle fonctionnalité en tant que plugin JQuery. Cela me force à écrire un code réutilisable qui n'est pas si couplé au style et à la balise.


1 commentaires

C'est en fait un excellent commentaire, cependant je craignais que de vrais initiations javascript apprécieront! +1



3
votes

Chaque fois qu'un programme commence à vous échapper, vous devez vous arrêter et examiner de près comment le casser en morceaux. Pensez à briser le JS dans des fichiers séparés afin que vous n'ayez pas à garder le tout dans votre tête à la fois. Tout ce que vous pouvez traiter comme "fait" peut être transformé en une interface où vous ne vous souciez plus des tripes de celui-ci.

Il s'agit de cacher le désordre. Que ce soit OO ou procédural. Beaucoup de gens ont le même problème avec PHP et C tel que vous rencontrez avec JavaScript, vous pouvez donc rechercher "PHP Spaghetti" et obtenir de bons conseils.


0 commentaires

1
votes

Utilisez un bon débogueur JavaScript comme Firebug et la déclaration de débogueur pour ajouter des points d'arrêt à votre JavaScript. Soyez juste prudent de les supprimer après que vous ayez terminé.


0 commentaires

8
votes

J'ai travaillé dans un web2.0 avec de nombreux javascript et etc .. je vais donner des conseils qui m'ont aidé:

Essayez APTANA , aide avec code complet, validations, etc. (avoir ext-je , Plugins jQuery)

Essayez JSLINT , aide-moi à résoudre des problèmes spécialement lors de la gestion de Internet Explorer.

Essayez Yslow pour voir les notes de votre site.

Essayez watir , outil que vous pouvez créer de nombreux cas de test comme: En cliquant sur n'importe où attendre que certains textes apparaissent dans les endroits où, écrivez une chaîne à certains champs, générez des journaux.

N'oubliez pas de mettre id dans partout que vous pourriez.

Définir des conventions de code pourrait aider. ( link1 - link2 )

[Mise à jour] Je cherchais dans mon favori et j'ai trouvé une très grande vidéo sur: JavaScript maintable Jetez un coup d'œil.

J'espère que ces conseils simples pourraient aider!

acclamations!


0 commentaires

1
votes

Vous voudrez peut-être penser à utiliser GWT.

  • SUPPORT SUPPRÉOR.
  • CLASSES
  • Capacité à refléter.
  • Nom Nom Conventions spatiales - Utilisez des packages.

    Pour une liste plus complète de "raisons", lisez celles données par l'équipe GWT.


0 commentaires

1
votes

Une chose qui m'a aidé à obtenir une poignée sur une base de code JavaScript complexe que j'ai héritée était le Paquet AOP à Dojo. . En utilisant, vous pouvez obtenir un chemin d'exécution bien formaté de votre code (type de profil de Firebug, mais dans une liste dans la commande, les méthodes ont été invoquées).

Je ne sais pas si JQuery a quelque chose de similaire, mais cela vaut peut-être la peine d'être examinée car il bat le snot hors de votre base de code avec des déclarations de journal que vous pouvez (ou non) doivent supprimer.

Une fois que vous savez comment les choses fonctionnent, vous pouvez vous y réorganiser en utilisant certains des excellents conseils ici.


0 commentaires