Style de programmation

Un article de Wikipédia, l'encyclopédie libre.

Le style de programmation est un ensemble de règles ou de lignes directrices utilisées lors de l'écriture du code source d'un programme informatique. Il est souvent affirmé que suivre un style de programmation particulier aidera les programmeurs à lire et à comprendre le code source conforme au style, et aidera à éviter les erreurs.

Un ouvrage classique sur le sujet, The Elements of Programming Style (en), est écrit dans les années 1970, et illustré avec des exemples dans les langages de programmations Fortran et PL/I.

Éléments de bon style[modifier | modifier le code]

La qualité d'un style de programmation est d'une appréciation délicate, sa caractérisation étant difficile. Cependant, il existe des éléments communs à de nombreux styles de programmation. Les aspects généralement considérés comme majeurs sont la disposition du code source, y compris l'indentation; l'utilisation de l'espace blanc autour des opérateurs et des mots clés; la capitalisation de mots clés et des noms de variables; le style et l'orthographe des identificateurs définis par l'utilisateur; et l'utilisation et le style des commentaires.

Apparence du code[modifier | modifier le code]

Les styles de programmation traitent généralement de l'aspect visuel du code source, avec pour but sa lisibilité. Il existe depuis longtemps des logiciels qui formatent automatiquement le code source, laissant les codeurs se concentrer sur la dénomination logique ainsi que sur les processus généraux. En pratique, l'utilisation d'un ordinateur pour formater le code source permet de gagner du temps.

Indentation[modifier | modifier le code]

Les styles d'indentation aident à identifier le flux de contrôle et les blocs de code. Dans certains langages, l'indentation est utilisée pour délimiter des blocs logiques de code ; l'indentation correcte dans ces cas n'est plus qu'une question de style. Dans d'autres, l'indentation et l'espace n'affectent pas la fonction, bien que l'indentation logique et cohérente rend le code plus lisible. Comparer :

if (hours < 24 && minutes < 60 && seconds < 60) {
    return true;
} else {
    return false;
}

ou

if (hours < 24 && minutes < 60 && seconds < 60)
{
    return true;
}
else
{
    return false;
}

Avec quelque chose comme

if  ( hours   < 24
   && minutes < 60
   && seconds < 60
)
{return    true
;}         else
{return   false
;}

Les deux premiers exemples devraient être beaucoup plus faciles à lire car ils sont indentés d'une manière commune. Ce style d'indentation est particulièrement utile lorsqu'il s'agit de constructions imbriquées.

Notez cependant que cet exemple peut se résumer à celui-ci :

return hours < 24 && minutes < 60 && seconds < 60;

Lua[modifier | modifier le code]

Lua n'utilise pas les crochets traditionnels ou les parenthèses. Les instructions if/else ne requièrent que l'expression soit suivie par then, et l'instruction end.

if hours < 24 and minutes < 60 and seconds < 60 then
    return true
else
    return false
end

L'indentation est facultative. and (et),or (ou), et not (non) sont utilisés entre les déclarations vraies/fausses.

Python[modifier | modifier le code]

Python utilise l'indentation pour indiquer les structures de contrôle. En faisant cela, il n'est plus nécessaire d'utiliser les crochets.

if hours < 24 and minutes < 60 and seconds < 60:
    return True
else:
    return False

Beaucoup de programmeurs Python ont tendance à suivre un guide de style communément connu sous le nom de PEP8[1]. Il existe des outils conçus pour automatiser la conformité au PEP8.

Alignement vertical[modifier | modifier le code]

Il est souvent utile d'aligner des éléments similaires verticalement, afin de rendre les bogues liés à la typographie plus évidents.

Soit le code suivant :

$search = array('a', 'b', 'c', 'd', 'e');
$replacement = array('foo', 'bar', 'baz', 'quux');

// Another example:

$value = 0;
$anothervalue = 1;
$yetanothervalue = 2;

et celui-ci :

$search      = array('a',   'b',   'c',   'd',   'e');
$replacement = array('foo', 'bar', 'baz', 'quux');

// Another example:

$value           = 0;
$anothervalue    = 1;
$yetanothervalue = 2;

Ce dernier exemple rend deux choses intuitivement claires, plus qu'elles ne l'étaient pas dans le premier :

  • Les termes de recherche et de remplacement sont liés et correspondent: ils ne sont pas des variables discrètes ;
  • Il y a un terme de recherche de plus que de termes de remplacement. S'il y a un bug, il est maintenant plus probable qu'il soit repéré.

Espaces[modifier | modifier le code]

Le style lié à l'espace blanc est couramment utilisé pour améliorer la lisibilité.

Ce qui apparaît, par exemple, dans les extraits syntaxiquement équivalents suivants en C :

int i;
for(i=0;i<10;++i){
    printf("%d",i*i+i);
}

versus

int i;
for (i=0; i<10; ++i) {
    printf("%d", i*i+i);
}

versus

int i;
for (i = 0; i < 10; ++i) {
    printf("%d", i * i + i);
}

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

Liens externes[modifier | modifier le code]