27
Style et conventions de programmation v1.2

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é

Embed Size (px)

Citation preview

Page 1: 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é

Style et conventions de programmation

v1.2

Page 2: 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é

2Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

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)

Page 3: 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é

3Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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, voirhttp://java.sun.com/docs/codeconv/

Page 4: 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é

4Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Style de programmation

• Règles générales compréhension facile

• Conventions pour le code lecture plus rapide spécificités pour Java

Page 5: 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é

5Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

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://www0.us.ioccc.org/2000/bellard.c)

Noeud suivant = courrant.suivant();

Page 6: 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é

6Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Style de programmation

• Noms descriptifs variables, fonctions, types, ...

• Exécution visible conditions, boucles, ...

• Commentaires classe, fonction, instruction, ...

Page 7: 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é

7Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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

Page 8: 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é

8Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Noms descriptifs

• Ne pas trop utiliser d'abréviations : nombreDePointsParVecteurnbPtsV

• Essayer de s'en tenir à moins de 15 caractèresnombreDePointsParVecteur // 24pointsParVecteur // 16 Noms relatifs au contexte

Page 9: 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é

9Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Noms descriptifs

• Éviter les noms qui se ressemblentdbSqldbSQLcaracteresLettrecaractereLettre

• Pas de "_" en début ou fin réservé pour le système

Page 10: 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é

10Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Noms : très important !

• Classes première lettre de chaque mot en

majuscule :class ServeurImagesCouleur

• Interfaces comme les classes :interface ServeurDonnees

Page 11: 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é

11Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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();

Page 12: 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é

12Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Noms : très important !

• accès aux champs getgetLength(), getColor()

setsetFile(), setEncriptionKey()

is, has ou can (valeur booléenne)isEnabled(), hasConnection(), canDial()

Page 13: 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é

13Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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;

Page 14: 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é

14Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Noms : très important !

• Constantes entièrement en majuscules, mots

séparés par soulignement ("_") :static final int MAX_COULEURS = 4096;

Page 15: 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é

15Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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

Page 16: 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é

16Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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 laboucle est clair

Page 17: 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é

17Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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

Page 18: 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é

18Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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

Page 19: 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é

19Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Conventions pour fichiers

• Taille <= 2000 lignes <= 80 colonnes

• Extension des fichiers (Java) source : .java bytecode : .class

Page 20: 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é

20Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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

Page 21: 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é

21Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 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

Page 22: 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é

22Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Indentation

• 4 espaces• Les <tabs> doivent être

exactement à tous les 8 espaces

Page 23: 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é

23Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Changement de ligne

• Après une virgulemethodeA(param1, param2, param3, param4);

• Avant un opérateurresultat = termeA * termeB / pi;calcule = termeC * (resultat - termeLongAEcrire);

• Indentation au niveau courrant

Page 24: 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é

24Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Déclarations

• Une par ligne bon : int jour;int mois;

mauvais :int jour, mois;

• Au début des bloques

Page 25: 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é

25Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Déclarations

• Au début des bloquesvoid maMethode() { int monInt1 = 0;

if (condition) { int monInt2 = 0; .... }}

Page 26: 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é

26Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Instructions

• Une par ligne bon :argv++;argc++;

moins bienargv++; argc++;a = (b = c) + 1; // 2 assignations

Page 27: 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é

27Département de génie électrique

LOG120 : Style et conventions de programmationAutomne 2003

Instructions

• return, if, for, while, do-while,

switch, try-catch : voir conventions de Sun :

http://java.sun.com/docs/codeconv/