Cours alternatif d’OCaml

Logo OCaml
V — Coder, et bien coder

Autres bonnes pratiques

Il existe quelques autres astuces pour rendre son code le plus clair et le plus solide possible, en plus des spécifications et des mesures.

Les commentaires « d’ensemble »

On définit parfois des types synonymes qui sont en réalité trop « larges » pour ce qu’on veut réellement. Par exemple, on pourrait modéliser le numéro d’un jour dans un mois (entre 1 et 31 donc) avec int, et écrire :

type jour_dans_mois = int

Comme le type int peut représenter des valeurs qui ne nous intéressent pas (518 par exemple), on précise généralement à côté à quel sous-ensemble on se limitera :

type jour_dans_mois = int (* 1 - 31 *)

Écrire des tests

OCaml fournit une fonction appelée assert, qui sert à écrire des tests. Elle prend un seul argument de type bool. Si cet argument vaut true, elle ne fera rien. S’il vaut false, elle fera planter tout le programme. On peut donc l’utiliser pour écrire une série d’assertions que l’on pense vraie. Ensuite, on lance notre code, et s’il plante, on saura que quelque chose ne s’est pas passé comme prévu : soit nos tests sont mal écrits, soit la fonction testée à un souci.

Voici un exemple d’utilisation simple :

let ajouter x y = x + y

assert (ajouter 2 3 = 5)
assert (ajouter 8 1 = 9)
assert (ajouter 3 -2 = 1)
assert (ajouter 7 7 = 10) (* Ce test est faux : notre programme va planter. *)

Dans cet exemple c’est le test qui est mal écrit, mais c’est beaucoup plus facile d’écrire un ensemble de tests corrects que d’écrire une fonction correcte, donc c’est souvent l’inverse (la fonction est incorrecte) qui a lieu.