Magali Contensin [email protected]
Industrialisa on de JavaScript
Réseau régional
ProDev !
21-22 janvier 2016 Action Nationale JavaScript – Marseille Industrialisation de JavaScript
2
¨ Nombreux outils disponibles pour créer une usine logicielle JS
¨ Automatisation des tâches récurrentes
¤ Gain de temps
¤ Diminution des erreurs dues à la gestion de tâches répétitives
Plan
3
¨ Coder
¨ Gérer les dépendances du projet
¨ Déboguer
¨ Optimiser
¨ Tester
¨ Générer la documentation
¨ Mesurer la qualité du code
¨ Automatiser et déployer Coder Utiliser un Environnement de Développement Intégré 4
¨ Arborescence du projet
¨ Editeur de code source
¤ Coloration syntaxique
¤ Mise en évidence des erreurs
¤ Recherche / remplacement avancés (expressions régulières, refactoring) Enide ¤ Visualisation simultanée de plusieurs fichiers JSDT Studio ¤ Indentation automatique ¤ Correspondance parenthèses, accolades ouvrantes/fermantes
¤ Conventions de codage et de nommage
¨ Complétion de code
¨ Génération de documentation d’API
¨ Gestion de version
¨ Débogage Coder Ecrire du code lisible et maintenable 5
¨ Bonnes pratiques de programmation ¤ Utiliser le mode strict ¤ Déclarer les variables et fonctions avant de les utiliser ¤ Accolades pour les if/for qui n’ont qu’une instruction
¨ Conventions de codage
¤ Indentation : pas de tabulation, utiliser 4 espaces
¤ Longueur de ligne : 80 caractères
¤ Noms de variables : caractères : alphabet, nombres et _
¤ Noms de fonctions : camelCase
¤ Mettre l’accolade ouvrante du bloc sur la même ligne que if, for, function, ...
¤ Mettre un caractère espace entre if, while, for, ... et (
¤ Utiliser === et !== plutôt que == et !=
⇒ Configurer l’EDI
⇒ Utiliser des outils d’analyse statique Coder Ecrire du code lisible et maintenable 6
Configurer l’EDI
définir le formatage Coder Ecrire du code lisible et maintenable 7
Configurer l’EDI
définir les indications d’alertes et erreurs Coder Ecrire du code lisible et maintenable 8
Configurer l’EDI
Partager les règles entres développeurs d’une même équipe et entre EDI http://editorconfig.org/
.editorconfig Coder Utiliser des outils d’analyse statique du code 9
¨ Vérifier que le code suit les bonnes pratiques de programmation
¨ Vérifier que le code suit des conventions de codage et des règles de nommage
¨ Détecter les problèmes potentiels
¤ Affectation dans if if (a = b)
¤ Oubli de déclaration de variable
¤ Code jamais exécuté (return avant le code)
¨ Détecter ce qui n’est pas utilisé (variables)
¨ Détecter les erreurs de syntaxe var x = 5 /* …. var y = 4; var z; /* ... */ if(x = y) ... */ statut = 'egal'; else statut= 'different'; Coder Utiliser des outils d’analyse statique du code 10
JSLint, support jQuery, plugin Eclipse, Netbeans, …
Douglas Crockford http://www.jslint.com/
var x = 5 var y = 4; var z; if(x = y) statut = 'egal'; else statut= 'different'; Coder Utiliser des outils d’analyse statique du code 11
http://www.jshint.com/
Support jQuery et Node.JS
Configurable
Plugin pour Eclipse, NetBeans
NB : JSHint se recentre vers la détection de problèmes dans le code, la prochaine version majeure ne vérifiera plus le style Coder Utiliser des outils d’analyse statique du code 12
JavaScript code style checker : http://jscs.info/ Plusieurs jeux de règles disponibles
Configuration d’un jeu de règles jscs --preset=crockford test.js
L’option -x corrige le fichier jscs --preset=crockford -x test.js
=> correction automatique de 146 erreurs Coder Utiliser des outils d’analyse statique du code 13
Intégration dans les IDE Coder Utiliser des outils d’analyse statique du code 14
Intégration dans les IDE Coder Ecrire du code JavaScript discret 15
¤ Séparation comportement / structure comportement style
Le fichier HTML ne contient que des JS CSS liens vers des fichiers JS et CSS
Utilisation du DOM pour l’accès aux HTML éléments structure