Style et conventions de programmation v1.2
Département de génie électrique 2 LOG120 : Style et conventions de programmation Automne 2003 Références Inspiré de Software Engineering Roger S. Pressman Java Code Conventions Java Programming Guidelines générées par Rational Unified Process (RUP)
Département de génie électrique 3 LOG120 : Style et conventions de programmation Automne 2003 Conventions LOG120 Ces conventions vous sont imposées Le non respect peut entraîner la perte de points (jusqu'à 10%) Pour plus de détails / exemples, voir
Département de génie électrique 4 LOG120 : Style et conventions de programmation Automne 2003 Style de programmation Règles générales compréhension facile Conventions pour le code lecture plus rapide spécificités pour Java
Département de génie électrique 5 LOG120 : Style et conventions de programmation Automne 2003 Compréhension du code source Code source lisible et compréhensible int m = , N, t[1 << 22], a, *p, i, e = 1 << 22, j, s, b, c, U; (tiré de Noeud suivant = courrant.suivant();
Département de génie électrique 6 LOG120 : Style et conventions de programmation Automne 2003 Style de programmation Noms descriptifs variables, fonctions, types,... Exécution visible conditions, boucles,... Commentaires classe, fonction, instruction,...
Département de génie électrique 7 LOG120 : Style et conventions de programmation Automne 2003 Noms descriptifs Donnent suffisamment d'information contexte, terminologie adéquate au domaine auditoire soi-même programmeur de la même équipe programmeur faisant la maintenance
Département de génie électrique 8 LOG120 : Style et conventions de programmation Automne 2003 Noms descriptifs Ne pas trop utiliser d'abréviations : nombreDePointsParVecteur nbPtsV Essayer de s'en tenir à moins de 15 caractères nombreDePointsParVecteur // 24 pointsParVecteur // 16 Noms relatifs au contexte
Département de génie électrique 9 LOG120 : Style et conventions de programmation Automne 2003 Noms descriptifs Éviter les noms qui se ressemblent dbSql dbSQL caracteresLettre caractereLettre Pas de "_" en début ou fin réservé pour le système
Département de génie électrique 10 LOG120 : Style et conventions de programmation Automne 2003 Noms : très important ! Classes première lettre de chaque mot en majuscule : class ServeurImagesCouleur Interfaces comme les classes : interface ServeurDonnees
Département de génie électrique 11 LOG120 : Style et conventions de programmation Automne 2003 Noms : très important ! Méthodes première lettre de chaque mot en majuscule, sauf la première du nom de la méthode : envoieImageCouleur();
Département de génie électrique 12 LOG120 : Style et conventions de programmation Automne 2003 Noms : très important ! accès aux champs get getLength(), getColor() set setFile(), setEncriptionKey() is, has ou can (valeur booléenne) isEnabled(), hasConnection(), canDial()
Département de génie électrique 13 LOG120 : Style et conventions de programmation Automne 2003 Noms : très important ! Variables première lettre de chaque mot en majuscule, sauf la première du nom de la variable : int nombreDeCouleurs;
Département de génie électrique 14 LOG120 : Style et conventions de programmation Automne 2003 Noms : très important ! Constantes entièrement en majuscules, mots séparés par soulignement ("_") : static final int MAX_COULEURS = 4096;
Département de génie électrique 15 LOG120 : Style et conventions de programmation Automne 2003 Commentaires Conseil : les écrire avant d'écrire le code Décrire le "pourquoi" plutôt que le "quoi" le code et le contexte donnent déjà une bonne idée de ce qui se passe
Département de génie électrique 16 LOG120 : Style et conventions de programmation Automne 2003 Exemple double S( ListOfDouble list ) { double sum = 0.0; ListOfDoubleIterator it = list.Begin(); while ( !it.IsAtEnd() ) { sum += it.Value(); } return( sum ); } corps de la fonction est court nom de la fonction est peu descriptif sous-bloc de la boucle est clair
Département de génie électrique 17 LOG120 : Style et conventions de programmation Automne 2003 Formatage du code Pourquoi? lecture plus rapide facilite le travail en équipe, la réutilisation du code code d'une autre personne formaté comme le sien éléments toujours positionnés de la même façon
Département de génie électrique 18 LOG120 : Style et conventions de programmation Automne 2003 Formatage du code Peut être frustrant choix parfois arbitraires imposés (par l'employeur) change nos habitudes S'avère toutefois bénéfique pour l'équipe pour la maintenance du code
Département de génie électrique 19 LOG120 : Style et conventions de programmation Automne 2003 Conventions pour fichiers Taille <= 2000 lignes <= 80 colonnes Extension des fichiers (Java) source :.java bytecode :.class
Département de génie électrique 20 LOG120 : Style et conventions de programmation Automne 2003 Structure des fichiers Sections et ordre (Java) commentaires commentaires de début de fichier standard pour LOG120 énoncés package et import déclarations class et interface
Département de génie électrique 21 LOG120 : Style et conventions de programmation Automne 2003 Structure d'une classe Ordre des éléments variables static variables d'instance constructeurs méthodes Pour chaque élément public, protected, puis private
Département de génie électrique 22 LOG120 : Style et conventions de programmation Automne 2003 Indentation 4 espaces Les doivent être exactement à tous les 8 espaces
Département de génie électrique 23 LOG120 : Style et conventions de programmation Automne 2003 Changement de ligne Après une virgule methodeA(param1, param2, param3, param4); Avant un opérateur resultat = termeA * termeB / pi; calcule = termeC * (resultat - termeLongAEcrire); Indentation au niveau courrant
Département de génie électrique 24 LOG120 : Style et conventions de programmation Automne 2003 Déclarations Une par ligne bon : int jour; int mois; mauvais : int jour, mois; Au début des bloques
Département de génie électrique 25 LOG120 : Style et conventions de programmation Automne 2003 Déclarations Au début des bloques void maMethode() { int monInt1 = 0; if (condition) { int monInt2 = 0;.... } }
Département de génie électrique 26 LOG120 : Style et conventions de programmation Automne 2003 Instructions Une par ligne bon : argv++; argc++; moins bien argv++; argc++; a = (b = c) + 1; // 2 assignations
Département de génie électrique 27 LOG120 : Style et conventions de programmation Automne 2003 Instructions return, if, for, while, do-while, switch, try-catch : voir conventions de Sun :