Documentation du code

Jeudi 22 septembre 2005 20:26 - Code

C'est le refrain dans n'importe quelle école d'informatique, il faut documenter son code, bla bla bla, on écoute mais de toute façon on est toujours à la bourre et on passe outre. Et une fois sorti de l'école, c'est à peu près pareil, toujours à la bourre, pas le temps, etc.

Évidemment je ne suis pas une exception, j'ai même pas mal de trucs obscurs derrière moi. Mais bon, ça ne m'empêche pas de parfois me retrouver à devoir lire le code source d'un programme. Parfois c'est impossible de s'y retrouver tellement c'est gros et tellement tout s'imbrique sans qu'on ne sache trop comment (genre OpenOffice.org). Mais parfois, rien qu'une petite fonction peut laisser une drôle d'impression.

Allez, zou, 45 lignes. C'est ultra-basique, quatre entiers en entrée, un entier en sortie. Il y a un commentaire super utile, Check 2 element.

/* Check 2 element */
static int
start_check_item (int start, int stop, int now, int max)
{   
  if (start == now && stop == now)
    return -3;
    
  if (start == now)
    return -1; 

  if (stop == now) 
    return -2;

  if (start < 0 || stop < 0)
    return 0;

  if (start < stop)
    {
      if (start < now && stop > now)
        return 0;
  
      if (start < now && stop < now)
        return max - now + start;

      return start - now;
    }
  else if (start > stop)
    {
      if (start > now && stop > now)
        return 0;

      if (start > now && stop < now)
        return start - now;

      return 0;
    }

  else
    {
      if (start < now)
        return max - now + start;

      return start - now;
    }
}

Voilà. Il y aurait beaucoup de choses à écrire là-dessus.