Style et conventions de programmation v1.2. Département de génie électrique 2 LOG120 : Style et...

Preview:

Citation preview

Style et conventions de programmation

v1.2

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)

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/

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

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

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

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

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

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

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

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

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

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;

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;

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

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

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

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

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

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

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

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

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

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

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; .... }}

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

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/

Recommended