Style et conventions de programmation v 1 2

  • Slides: 27
Download presentation
Style et conventions de programmation v 1. 2

Style et conventions de programmation v 1. 2

Références • Inspiré de § Software Engineering Roger S. Pressman § Java Code Conventions

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

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

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 =

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, . . . •

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

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

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.

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

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

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()

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

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

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

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

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

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

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 •

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

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 §

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

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,

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

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

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++;

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

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