Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Relire une modification de code

Après cette leçon: Je peux relire une petite modification et dire ce qu'il faut améliorer.

Leçon de 45 minAucune commande

Avant la mise en production

Votre collègue Karim a ajouté une fonction à l'appli de livraison de repas. Elle calcule la note moyenne d'un restaurant.

Avant de mettre son code en ligne, l'équipe a une règle : une autre personne le relit. Aujourd'hui, c'est vous.

Qu'allez-vous regarder, et comment le lui dire ?

À la fin de cette leçon

Remarque

Je peux relire une petite modification et dire ce qu'il faut améliorer.

Mots clés

MotCe que ça veut direExemple
Relecture de codela lecture du code d'un collègue avant sa mise en ligne
Demande de fusionune modification proposée, qui attend sa relecturepull request
Diffles lignes ajoutées et retirées par une modification
Nommagele choix des noms des variables et des fonctions
Cas limiteune entrée extrême, comme une liste vide
Commentaire de relectureune remarque écrite sur une ligne précise

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une relecture commence par le diff

Une demande de fusion montre un diff. Les lignes qui commencent par + sont ajoutées. Celles avec - sont retirées.

Vous ne relisez pas tout le logiciel, seulement ce qui change. Lisez d'abord les noms : disent-ils ce que fait le code, sans avoir à le lire ligne par ligne ?

La modification de Karim

Code: bash
--- a/avis.py
+++ b/avis.py
@@ -10,3 +10,9 @@
 def nombre_avis(notes):
     return len(notes)
+
+def calc(l):
+    t = 0
+    for x in l:
+        t = t + x
+    return t / len(l)

Essayez : exécutez la modification

Code: python
# La modification proposée par un collègue.
def calc(l):
    t = 0
    for x in l:
        t = t + x
    return t / len(l)

# Les notes de la pizzeria, de 1 à 5 étoiles.
print(calc([5, 4, 3, 4]))

# Et pour un restaurant qui vient d'ouvrir, sans aucun avis ?
# Enlevez le # de la ligne suivante, puis exécutez.
# print(calc([]))

À vous : choisissez des noms clairs

Code: python
# Même code, mais les noms ne disent rien.
# Renommez calc, l, t et x avec des noms clairs, en français sans accent.
# Puis exécutez : le résultat doit rester 4.0.
def calc(l):
    t = 0
    for x in l:
        t = t + x
    return t / len(l)

print(calc([5, 4, 3, 4]))

Cherchez les entrées qui cassent le code

Après les noms, demandez-vous : avec quelles entrées ce code peut-il casser ?

Pensez à la liste vide, au zéro, au nombre négatif, au texte inattendu. Ici, un restaurant qui vient d'ouvrir n'a aucun avis. La division par zéro ferait planter la page.

Demandez aussi s'il existe un test pour chaque cas.

Exemple : quelles notes essayer ?

EntréeCe que fait le codeÀ signaler ?
[5, 4, 3, 4]Renvoie 4.0Non, c'est le cas normal
[5]Renvoie 5.0Non
[]Plante : division par zéroOui, c'est bloquant
[6, 4]Renvoie 5.0Oui : une note de 6 étoiles est-elle permise ?

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Un bon commentaire est précis et bienveillant

Votre commentaire s'adresse au code, jamais à la personne. Il dit quoi, pourquoi, et propose une solution.

Indiquez aussi si c'est bloquant ou une simple suggestion. Posez une question quand vous n'êtes pas sûr.

Et dites ce qui est bien fait : cela aide autant que le reste.

Exemple : deux façons de dire la même chose

À éviterÀ écrire
C'est nul.Bloquant : avec une liste vide, la ligne 6 divise par zéro. Pouvez-vous renvoyer 0 dans ce cas ?
Mauvais noms.Suggestion : note_moyenne et notes diraient mieux ce que fait la fonction.
Pas de test ?Question : avez-vous prévu un test pour un restaurant sans avis ?

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une erreur fréquente

Attention

Beaucoup pensent qu'une relecture sert à montrer les fautes d'un collègue. C'est faux. Elle sert à livrer un meilleur code, ensemble. Un commentaire sec bloque l'échange. Un commentaire précis permet de corriger vite.

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.