J'ai du mal avec Javascript. La plupart de mes problèmes ne proviennent pas d'un manque de compréhension du langage (enfin, ça aussi, mais soyez indulgent avec moi). Le problème principal est plutôt de comprendre ce qu'est un bon style de programmation/d'organisation du code.
Par exemple, j'ai besoin d'avoir différentes entités (formulaires, zones de texte, tableaux, etc.) dans une page, et de les faire modifier en fonction d'événements, déclenchés par l'utilisateur ou par Ajax.
Ma première idée était de définir une classe pour chaque entité, de définir des méthodes sur le prototype de ces classes, puis d'instancier les classes en les liant à des identifiants HTML spécifiques (soit implicitement, soit lorsqu'elles sont instanciées avec new), et d'enregistrer des gestionnaires entre les événements et les appels de méthode. En d'autres termes, une sorte de "style QT". Je me suis vite rendu compte que ce n'est pas trivial. Vous ne pouvez pas enregistrer directement des méthodes d'objet comme callbacks, vous devez les envelopper dans une fermeture, etc...
Une autre idée que j'ai eue était de déclarer juste un tas de fonctions de rappel, sans objets, et chaque rappel opère sur des variables globales et sur le DOM. Rapide et sale, pas de chichis. C'est comme si votre page n'était qu'un gros objet dont les événements sont gérés en interne.
Toutes les solutions auxquelles j'ai pu penser m'ont donné l'impression de mal utiliser l'outil. Au final, je ne me sens pas à l'aise car j'ai vu très peu de code javascript dans mon expérience de programmation, et c'est très différent de tous les langages avec lesquels j'ai de l'expérience. En jetant un coup d'oeil aux premiers trucs que je télécharge, c'est garanti d'être une perte de temps, car ils sont compressés et/ou obfusqués et/ou pas "à jour" avec les "bonnes pratiques javascript" actuelles, donc je vous demande une page web simple, puissante et propre plus son code javascript associé pour entrer rapidement dans un style de programmation/présentation de code approprié.
(J'utilise jQuery, mais ma question est indépendante de cela. Néanmoins, un exemple utilisant jQuery serait préférable).