Il y a très peu de choses qui semblent pires que d'exécuter votre programme pour la énième fois pour apprendre qu'il ne démarre toujours pas. Même les meilleurs programmeurs savent ce que c'est.
Vous regardez un bloc de code que vous avez ciselé pendant des heures. Cette syntaxe semble correcte, votre espacement est cohérent, vous avez nommé vos variables de manière appropriée... alors qu'est-ce qui donne ?
Peut-être avez-vous besoin d'une nouvelle méthode pour déboguer. Et vous seriez surpris de découvrir que l'une des façons éprouvées de s'y prendre, assez curieusement, implique un jouet de la variété baignoire.
Ceci est mieux expliqué à travers une petite histoire. Imaginez ceci :vous êtes un programmeur travaillant avec une équipe de personnes. Vous faites votre travail quotidien, codez tout ce dont vous avez besoin, puis vous rencontrez un problème. Pour une raison quelconque, le programme ne fonctionne pas comme il le devrait.
Vous décidez donc de marcher dans le couloir et de dire à votre collègue que vous avez affaire à un bug tenace. Ils acceptent de vous aider et de vous demander ce qui ne va pas exactement. Vous commencez à expliquer le problème en détail et constatez qu'au milieu de votre explication, vous avez trouvé une solution.
Cela se produit en fait dans le monde réel plus souvent que vous ne le pensez. Vous vous demandez peut-être ce que tout cela a à voir avec les canards en caoutchouc. Eh bien, vous auriez pu vous confier à un copain jaune en plastique (ou à tout objet inanimé), au lieu de déranger quelqu'un d'autre.
La meilleure partie? Vous pouvez trouver du réconfort en sachant que votre canard ne vous jugera pas pour votre long discours. Si vous avez souvent besoin de déboguer, consultez cette liste des erreurs de programmation et de codage les plus courantes.
"Le débogage du canard en caoutchouc" est une référence à une histoire dans un livre de programmation intitulé The Pragmatic Programmer :From Journeyman to Master par Andrew Hunt et David Thomas. Dans ce document, un programmeur transporterait un canard en caoutchouc et déboguerait son code en se forçant à l'expliquer, ligne par ligne, au canard.
Souvent, en décrivant ce que le code est censé faire, vous observez ce que le code fait réellement, et par la suite, trouvez où les choses ne s'alignent pas. C'est pourquoi on dit qu'enseigner une matière est l'une des meilleures façons de l'apprendre. Vous devez évaluer les problèmes sous différents angles pour aider quelqu'un d'autre à comprendre, ce qui vous aide à comprendre.
La partie la plus importante de l'utilisation de cette méthode est votre engagement envers elle. Oui, il peut sembler extrêmement idiot d'avoir une conversation unilatérale aussi approfondie. Mais déployer autant d'efforts pour guider une autre personne (réelle, imaginaire ou en caoutchouc) à travers votre problème est exactement ce qui fera que le problème semble se résoudre de lui-même.
Cette méthode fonctionne si bien car la plupart des bogues dans le code sont causés par un manque d'informations et d'instructions explicites au logiciel. Les ordinateurs ne peuvent pas comprendre les instructions vagues. En supposant que votre canard ne sait rien du tout de votre problème, vous êtes obligé de décrire tous les détails de fond. Il s'avère que vous n'avez pas tout compris aussi bien que vous le pensiez.
Il n'y a que trois étapes simples pour esquiver en caoutchouc :
Cette méthode pratique a été inventée par des programmeurs, mais elle peut certainement être appliquée à des problèmes en dehors de la programmation. Comment? Ici, construisons un autre scénario imaginaire :vous venez d'acheter un nouveau réfrigérateur pour votre maison.
Vous faites expédier le nouveau réfrigérateur à votre domicile et le mettez à sa place dans la cuisine. Vous transférez toutes les marchandises de votre ancien réfrigérateur dans le nouveau et vous vous débarrassez de l'ancien. La journée se termine et vous allez vous coucher. Lorsque vous vous réveillez le lendemain matin, vous ouvrez la porte du réfrigérateur pour découvrir que tous vos aliments ont mal tourné pendant la nuit !
Vous êtes furieux, bien sûr, et vous commencez à vous défouler sur un membre de votre famille. "Comment cela a-t-il pu arriver ? Je l'ai payé, ramené et tout déplacé à l'intérieur de cette chose qui, lorsqu'elle est alimentée, est censée avoir un contrôle de température incroyable—"
Oh. Vous avez oublié de brancher ce satané truc.
C'est un peu gênant, mais au moins vous connaissez le problème maintenant. C'est parce que vous avez pris le temps de réfléchir à toute la situation du début à la fin. Parfois, lorsque vous êtes tellement familiarisé avec un processus, vous ne remarquez pas les problèmes les plus évidents qui se glissent à côté de vous.
Par exemple, nous allons passer en revue un exemple de code Python. Comme nous l'avons démontré, vous pouvez utiliser votre fidèle canard en caoutchouc pour résoudre toutes sortes de problèmes différents. La méthode peut être appliquée à n'importe quel langage de programmation dans lequel vous travaillez.
Nous voulons imprimer les nombres un à cinq. Alors, allez-y et tapez tout ce code :
pour x dans la plage(5) :
impression(x, fin=" ")
Sortie :0 1 2 3 4
Hein. C'est bizarre. Vous avez demandé au compilateur d'imprimer une plage de cinq nombres. Quel est le problème ici ? Passons en revue toutes les possibilités. Votre syntaxe est correcte car le code s'est exécuté sans erreur. Ce n'est pas qu'il vous manque des arguments, car les arguments start et step sont facultatifs...
Attendez. La gamme La fonction renvoie une séquence de nombres, incrémente de un (par défaut) et s'arrête avant une limite supérieure que vous définissez. Mais où commencent les gammes ? En Python, les plages commencent à zéro sauf indication contraire.
Maintenant, vous savez que vous êtes censé écrire.
pour x dans la plage(5) :
print(x+1, fin=" ")
Sortie :1 2 3 4 5
Bien qu'ils soient incapables de vous dire exactement où vous vous êtes trompé dans votre code, les canards en caoutchouc ont aidé les programmeurs du monde entier. La prochaine fois que vous rencontrerez un bogue lors de la programmation, essayez de saisir un canard en caoutchouc (ou un autre objet ou une personne pour agir comme tel), et voyez si cette méthode de résolution de problèmes fonctionne pour vous.
Qui aurait pensé que les canards en caoutchouc pouvaient être plus qu'un simple jouet de bain ?