Bonjour à tous,
Ce sujet fait suite à un début de réflexion dans le cadre de mon travail, et je n'ai pas trouvé de réponses pertinentes après une rapide recherche.
Dans mon entreprise, nous utilisons Mootools comme bibliothèque Javascript, mais au final je pense que la préoccupation qui a donné naissance à ce topic est totalement indépendante de la bibliothèque utilisée, d'où sa présence sur ce forum.
En fait, je cherche à établir au fur et à mesure des besoins, une bibliothèque de classes Javascript réutilisables pour les besoins les plus communs (formulaires dynamiques avec création de champ à la volée, menus déroulants, automatisation des liste select "ajaxo-remplissables" basées sur des conventions de nommage des classes...). Bref, c'est une petite bibliothèque qui compte bien grandir, et je me heurte à quelques réflexions sur l'organisation de ce projet.
L'idéal pour le développement serait d'avoir un fichier par classe, organisées par modules (par exemple ma classe de génération de formulaire pourrait être dans MyCompany/Forms/Dynamic.js, et la classe serait définie comme MyCompany.Forms.Dynamic.
Le problème est qu'en production, on utilise un seul fichier Js compacté, pour des raisons de performances. Multiplier les balises scripts serait donc un cauchemar à organiser, et une perte énorme de performances.
Pour le moment, on utilise un seul fichier (mycompany.js) qu'on utilise en développement, et qu'on concatène avec les bibliothèques et compacte "à la main" à chaque mise en production. Ce n'est ni très pratique, ni bien organisé : quand la bibliothèque va grossir, retrouver le code à modifier dans un seul fichier Js va être une horreur...
Et je me suis dit que bon, je ne devais pas être le premier à me poser la question, alors avant de réfléchir à une organisation, voire à créer un "compilateur" maison à base de directive require artisanale dans le code source, il était de bon ton de questionner un peu les gens sur leurs pratiques
Comment faîtes-vous pour organiser vos projets Javascript ? Scripts maisons, IDE disposant de fonctionnalités de ce genre, prêtre vaudou ?
Merci d'avance !
Partager