Debugger un état qui change trop vite

Quand tout bouge en permanence Certains bugs ne viennent pas d’une mauvaise valeur, mais d’un état qui change trop vite pour être lu correctement. Entre deux logs, la donnée a déjà évolué. La console donne alors l’impression que tout est instable, alors que le problème vient surtout du rythme des mises à jour. Un piège … Lire la suite

Pourquoi cet objet n’a pas la valeur attendue

Une situation familière L’objet est bien là. Les propriétés aussi. Pourtant, la valeur affichée ne correspond pas à ce qui était attendu. C’est une situation fréquente, et rarement liée à une simple faute de frappe. Références et mutations Dans beaucoup de cas, l’objet a été modifié ailleurs, après le moment où on pensait l’observer. Comme … Lire la suite

La console ment sur le temps

Une illusion fréquente La console donne souvent l’impression que tout s’enchaîne de manière linéaire. Les logs s’affichent les uns après les autres, dans un ordre rassurant. Mais cet ordre est une reconstruction, pas toujours le reflet fidèle du temps réel. Affichage et exécution L’affichage d’un log et son exécution ne sont pas exactement la même … Lire la suite

Supprimer des logs est aussi un travail de dev

Un réflexe souvent oublié Ajouter des logs fait partie des réflexes de base en debug. Les supprimer l’est beaucoup moins. Pourtant, un log obsolète peut devenir aussi gênant qu’un mauvais log. Le coût invisible des logs inutiles Chaque log inutile ajoute un peu de charge cognitive. Pris individuellement, c’est négligeable. Accumulé, ça ne l’est plus. … Lire la suite

Quand un log devient du bruit

Le moment où la console devient illisible Un log utile peut rapidement devenir un problème s’il est répété trop souvent ou laissé trop longtemps. La console se remplit, l’information importante se noie, et lire devient plus difficile que de ne rien avoir. Accumulation silencieuse Les logs ajoutés « temporairement » ont tendance à rester. Chacun pris isolément … Lire la suite

Logs synchrones, logs asynchrones : ce que la console ne montre pas

Un ordre qui semble logique Quand on lit des logs dans la console, l’ordre d’affichage donne souvent l’impression de refléter l’ordre réel d’exécution. En réalité, ce n’est pas toujours le cas. Dès que de l’asynchrone entre en jeu, la console peut donner une vision partielle, voire trompeuse, de ce qui se passe. Synchrone et asynchrone … Lire la suite

Écrire des logs qui aident vraiment à comprendre un bug

Le log comme outil de réflexion Un log n’est pas seulement une sortie texte. C’est un moyen de structurer sa réflexion face à un bug. Avant d’écrire un log, il est souvent utile de formuler mentalement ce que l’on cherche à vérifier. Donner du contexte Un log isolé est rarement suffisant. Le contexte autour de … Lire la suite

Debug sans breakpoints : rester dans le flux

Interrompre ou observer Les breakpoints sont utiles, mais ils ne sont pas toujours la meilleure première option. Mettre le code en pause casse souvent la lecture naturelle de ce qui se passe. La console permet une autre approche : observer sans interrompre. Suivre le flux réel d’exécution Avec des logs bien placés, il est possible … Lire la suite

Ce que la console dit vraiment quand « ça marche chez moi »

Une phrase qui cache souvent un problème « Ça marche chez moi » est rarement une conclusion satisfaisante. C’est souvent le signe que quelque chose échappe encore à l’observation. Côté navigateur, la console joue un rôle central dans ce décalage. Elle montre ce qui se passe localement, dans un contexte précis, avec un état parfois très différent … Lire la suite

Lire un objet dans la console sans se mentir

Ce que l’on pense voir Lire un objet dans la console semble simple. On log l’objet, on l’ouvre, et on regarde ses propriétés. En pratique, ce que la console affiche n’est pas toujours ce que le code avait à l’instant du log. C’est une source classique de confusion, surtout quand l’état évolue rapidement ou quand … Lire la suite