Style et conventions de programmation v 1 2



























- Slides: 27

Style et conventions de programmation v 1. 2

Références • Inspiré de § Software Engineering Roger S. Pressman § Java Code Conventions http: //java. sun. com/docs/codeconv/ § Java Programming Guidelines générées par Rational Unified Process (RUP) Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 2

Conventions LOG 120 • 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 http: //java. sun. com/docs/codeconv/ Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 3

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 LOG 120 : Style et conventions de programmation Automne 2003 4

Compréhension du code source • Code source § lisible et compréhensible int m = 754974721, N, t[1 << 22], a, *p, i, e = 1 << 22, j, s, b, c, U; (tiré de http: //www 0. us. ioccc. org/2000/bellard. c) Noeud suivant = courrant. suivant(); Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 5

Style de programmation • Noms descriptifs § variables, fonctions, types, . . . • Exécution visible § conditions, boucles, . . . • Commentaires § classe, fonction, instruction, . . . Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 6

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 LOG 120 : Style et conventions de programmation Automne 2003 7

Noms descriptifs • Ne pas trop utiliser d'abréviations : nombre. De. Points. Par. Vecteur nb. Pts. V • Essayer de s'en tenir à moins de 15 caractères nombre. De. Points. Par. Vecteur // 24 points. Par. Vecteur // 16 § Noms relatifs au contexte Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 8

Noms descriptifs • Éviter les noms qui se ressemblent db. Sql db. SQL caracteres. Lettre caractere. Lettre • Pas de "_" en début ou fin § réservé pour le système Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 9

Noms : très important ! • Classes § première lettre de chaque mot en majuscule : class Serveur. Images. Couleur • Interfaces § comme les classes : interface Serveur. Donnees Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 10

Noms : très important ! • Méthodes § première lettre de chaque mot en majuscule, sauf la première du nom de la méthode : envoie. Image. Couleur(); Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 11

Noms : très important ! • accès aux champs § get. Length(), get. Color() § set. File(), set. Encription. Key() § is, has ou can (valeur booléenne) is. Enabled(), has. Connection(), can. Dial() Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 12

Noms : très important ! • Variables § première lettre de chaque mot en majuscule, sauf la première du nom de la variable : int nombre. De. Couleurs; Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 13

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 LOG 120 : Style et conventions de programmation Automne 2003 14

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 LOG 120 : Style et conventions de programmation Automne 2003 15

Exemple nom de la fonction est peu descriptif double S( List. Of. Double list ) { double sum = 0. 0; List. Of. Double. Iterator it = list. Begin(); while ( !it. Is. At. End() ) { sous-bloc de la sum += it. Value(); boucle est clair } return( sum ); } corps de la fonction est court Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 16

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 LOG 120 : Style et conventions de programmation Automne 2003 17

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 LOG 120 : Style et conventions de programmation Automne 2003 18

Conventions pour fichiers • Taille § <= 2000 lignes § <= 80 colonnes • Extension des fichiers (Java) § source : . java § bytecode : . class Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 19

Structure des fichiers • Sections et ordre (Java) § commentaires • commentaires de début de fichier standard pour LOG 120 § énoncés package et import § déclarations class et interface Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 20

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 LOG 120 : Style et conventions de programmation Automne 2003 21

Indentation • 4 espaces • Les <tabs> doivent être exactement à tous les 8 espaces Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 22

Changement de ligne • Après une virgule methode. A(param 1, param 2, param 3, param 4); • Avant un opérateur resultat = terme. A * terme. B / pi; calcule = terme. C * (resultat terme. Long. AEcrire); • Indentation au niveau courrant Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 23

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 LOG 120 : Style et conventions de programmation Automne 2003 24

Déclarations • Au début des bloques void ma. Methode() { int mon. Int 1 = 0; if (condition) { int mon. Int 2 = 0; . . } } Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 25

Instructions • Une par ligne § bon : argv++; argc++; § moins bien argv++; argc++; a = (b = c) + 1; // 2 assignations Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 26

Instructions • return, if, for, while, do-while, switch, try-catch : § voir conventions de Sun : http: //java. sun. com/docs/codeconv/ Département de génie électrique LOG 120 : Style et conventions de programmation Automne 2003 27