Myriad Blog 1.3.0 Wednesday, Sep 26th, 2018 at 05:40pm 

Tuesday, Mar 8th, 2016 at 05:18pm
Javascript IDE

 
Pour ce billet, une petite plongée dans notre manière de développer.
 
Lorsqu'un projet atteint une certaine complexité, il est nécessaire de le découper en modules, chaque module regroupant les fonctionnalités qui correspondent à un sujet donné.
Par exemple, dans Harmony Assistant, un module contiendra tout ce qui concerne les transpositions, l'autre les tracés graphiques d'une portée, etc.
 
Ainsi, le projet "Harmony Assistant" est constitué de plusieurs centaines de fichiers thématiques (en C).
 
Pour gérer cela, nous utilisons ce qu'on appelle un IDE (Integrated development environment), en français environnement de développement intégré, qui gère la liste des modules, l'édition de ces fichiers, la compilation du projet, le traitement des erreurs et le déboguage.
 

 
Pour nos projets en C, (Melody/Harmony, PDFtoMusic, etc), sur Windows, nous utilisons 'Visual Studio", sur Mac "XCode" et sur Linux Code:Blocks.
 
Pour les applis Web en Javascript par contre, nous n'avions rien. Les apps étaient jusqu'ici très simples, et contenues dans un seul module. Un éditeur de texte suffisait à notre bonheur.
 
Il est possible et même probable que des IDE javascript existent, mais ils nécessiteraient d'être installés sur tous les ordinateur où nous serions susceptibles d'éditer du code, soit 4 ou 5 ordinateurs, sur autant de systèmes différents (Windows XP, 8 et 10, Mac OS...)
 
De plus, la prise en compte des particularités de nos projets, avec les scripts Perl additionnels qui délivrent le code Javascript à l'utilisateur, la centralisation de nos sources sur une machine réseau, etc, nous aurait demandé de nous plonger dans les configurations de ces outils.
 
Nous avons alors réalisé qu'il existait un système multiplateforme maintenant suffisamment performant, et que nous commençons à maîtriser : les applis web.
 
Nous avons donc monté un petit serveur Web intranet (XAMPP) sur l'ordinateur qui gère nos mails et les partages torrent, et qui est allumé en permanence. Nous avons ensuite écrit un script Perl qui donne la liste des projets Web en cours (pour l'instant, deux projets, le visualiseur de didacticiels et le visualiseur de partitions) et permet d'effectuer des opérations dessus :
 

 
Parmi ces opérations, la "compilation" d'un projet. Il ne s'agit pas à proprement parler d'une compilation, Javascript étant un langage interprété, mais d'un tronçonnage/compactage qui rend le code plus compact (pour limiter la charge réseau) en enlevant les commentaires, renommant les variables, etc. Cette opération, qui analyse la logique du code relativement en profondeur, nous permet également de vérifier que notre code est valide.
Pour cela, nous avons utilisé UglifyJS, un utilitaire écrit lui-même en Javascript et qui s'avère assez puissant.
 
Les erreurs détectées par UglifyJS sont traitées par notre script et rendues cliquables.
 

 
Un clic permet d'aller éditer le module en question, grâce à un éditeur de texte appelé ACE, écrit lui aussi en Javascript.
 

 
Bien sûr, tous ces outils ne sont pas disponibles sur notre serveur myriad-online.com, mais seulement sur notre Intranet. Seuls les résultats des compilations seront rendus publics.
by Olivier Guillion


Most recent first
Oldest first

Top of page
Legal information Last update:  (c) Myriad