next up previous contents
Next: Glossaire des mots courants Up: La prévention des erreurs Previous: Lisibilité

Quelques recettes

Enfin, divers "trucs et astuces" sont inventés tous les jours par les programmeurs pour améliorer la fiabilité de leur production. Ainsi, pour éviter les problèmes de mauvais appariements, quelqu'un a eu un jour l'idée de taper tout d'abord

    {
    }
avant de ``remplir'' le bloc par les instructions adéquates. L'attention du programmeur, libérée de l'inquiétude de l'oubli d'une accolade ou parenthèse fermante, peut se concentrer sur des choses plus intéressantes. Cette idée a vite été généralisée à toute structure nécessitant des appariements, comme
    if ()
    {
    }
    else
    {
    }

Cette façon de saisir les programmes a de plus l'avantage de faciliter l'indentation des instructions selon leur niveau d'imbrication, qui consiste à décaler vers la droite (d'un nombre constant de caractères) toute intruction faisant partie d'une structure (conditionelle, répétitive, bloc tex2html_wrap_inline139 ). La lisibilité d'un programme mal indenté est tellement problématique qu'aucun programmeur professionnel, aujourd'hui, n'oserait décemment présenter quelque chose du style :

for (i = 0; i < M; i++) 
Q[i] = 0.0;
for (n = 1; n <= N; n++) {
for (i = 0; i < M; i++) 
R[i] = S[i] * (1 + Q[i]);
X = 0.0;
}

alors qu'il est tellement facile et plus lisible d'écrire :

  for (i = 0; i < M; i++) 
    Q[i] = 0.0;
  for (n = 1; n <= N; n++) 
  {
    for (i = 0; i < M; i++) 
      R[i] = S[i] * (1 + Q[i]);
    X = 0.0;
  }

Un dernier conseil : pour améliorer la lisibilité de votre code et éviter des ambiguïtés, parenthésez largement les expressions arthmétiques et logiques. N'écrivez pas :

    if (a + b * x < c || ! f && x * x - 2 == z) ...
mais plutôt :
    if ((a + (b * x) < c) || ((! f) && ((x * x) - 2 == z))) ...
c'est beaucoup plus clair, même si certaines parenthèses ne sont pas strictement indispensables.



Michel COUPRIE
Thu Sep 12 13:39:33 METDST 1996