Style de programmation

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, , 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 
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 
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 
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;
}ouif (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 

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 

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. Il existe des outils conçus pour automatiser la conformité au PEP8.

Alignement vertical 
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 
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 
 Règles de codage
 Style d'indentation
 MISRA C
 Convention de nommage
 Programmation

Références

Liens externes 
 Source Code Formatters sur DMOZ

Code source