Améliorer les compétences de débogage de logiciels - quelques conseils



Du traducteur. Le débogage de logiciels pour de nombreux codeurs est une tâche ennuyeuse et routinière. Mais il est tout simplement impossible de se passer de débogage. Cet article est une traduction de l' article original de Nick Karnik, dans lequel il partage ses propres observations sur les erreurs et les lacunes du débogage, qui se trouvent non seulement chez les programmeurs débutants, mais aussi chez les pros.

Nous écrivons tous du code qui, malheureusement, refuse parfois de fonctionner. C'est normal, cela ne fait qu'une partie du processus de développement. Si le programme donne une erreur, parfois vous ne savez pas quoi faire ensuite et comment y remédier. Ne vous inquiétez pas - tous les problèmes sont résolus et même les codeurs les plus expérimentés ont des erreurs.

Skillbox recommande: Cours annuel pratique "Développeur PHP de zéro à PRO" .
Nous vous rappelons: pour tous les lecteurs de «Habr» - une remise de 10 000 roubles lors de l'inscription à un cours Skillbox en utilisant le code promotionnel «Habr».

Afin de minimiser les erreurs, il est nécessaire de développer à la fois des compétences de programmation et de débogage.

Ils sont eux-mêmes divisés en deux types - logique et syntaxique.

Les erreurs de développement les plus courantes


Messages d'erreur manquants

L'un des scénarios les plus difficiles est lorsque l'application se bloque et qu'il n'y a aucun message sur la raison de ce qui s'est produit. Afin de pouvoir résoudre le problème dans le code, vous devez comprendre s'il se produit au démarrage ou déjà dans le processus. Vous pouvez le découvrir en ajoutant la journalisation des messages d'application au début du code.

S'il n'y a pas de journal, il est fort probable que le programme se bloque pendant le chargement, avant même que quelque chose ne commence à être écrit dans le journal.

Si vous avez un journal des messages, parcourez-le et recherchez la cause possible de l'accident. Afin d'affiner la recherche, il vaut la peine de faire en sorte que le programme enregistre les principaux événements dans le cadre de son travail. Dans ce cas, le problème sera plus facile à trouver.

Messages d'erreur de phobie

Si nous parlons de frontend, les erreurs sont généralement affichées soit dans l'application elle-même, dans l'interface utilisateur ou dans la console du développeur. Parfois, des messages peuvent être vus dans le backend à l'aide du terminal ou dans le journal des événements. Quel que soit le type d'erreur, les débutants ont peur de ces messages et ne les lisent même pas.

C'est la principale raison pour laquelle certains développeurs mettent tant de temps à déboguer.

Tout d'abord, il est nécessaire d'étudier l'erreur, d'analyser tout de la manière la plus approfondie.

Réticence à étudier les journaux du système

Certains programmes écrivent des fichiers journaux ou génèrent un journal des événements. Tout cela n'est qu'un magasin d'informations utiles. Si vous ne parvenez pas à trouver une indication exacte de la cause de l'erreur dans le journal des événements, essayez de rechercher des messages sur l'échec ou, inversement, le lancement réussi de quelque chose (module, service). Cela vous aidera à comprendre la cause de l'erreur.

Journal de trace manquant

Le traçage permet de suivre le processus du programme et de travailler avec les données. L'enregistrement des messages de trace pendant l'exécution du logiciel simplifie le processus de débogage. Le journal de suivi est un moyen simple d'apprendre comment fonctionne votre application.

Incapacité à travailler par étapes

De nombreux développeurs écrivent de gros morceaux de code, après quoi ils sont compilés et testés dans le cadre de l'application. Mais il convient de rappeler que le temps de recherche de bogues dans le code est proportionnel à son volume.

S'il y a beaucoup de changements, vous devrez passer beaucoup de temps à chercher un problème qui apparaît soudainement. Il vaut mieux travailler par étapes. Apportez de petites modifications, compilez du code, testez l'application - puis répétez tout cela. Lorsque vous implémentez des modifications dans de petites itérations, cela accélère finalement le processus de création de l'application. Si quelque chose ne fonctionne pas, vous pouvez rapidement comprendre pourquoi.

Après avoir écrit mon code, je le revois souvent pour simplifier l'écriture.

Réticence à effectuer des tests automatiques

Les tests unitaires et l'automatisation des tests de bout en bout vous permettent d'identifier les erreurs potentielles lorsqu'elles se produisent. L'une des causes des erreurs est que les développeurs refactorisent le code avant qu'il ne soit complètement testé, c'est-à-dire que les modifications ne sont pas testées automatiquement.

Incapacité de travailler avec la méthode d'exception

Si vous ne pouvez pas déterminer la cause première de votre problème, vous devez utiliser la méthode d'exception. Vous pouvez commenter de nouveaux blocs de code pour vérifier si l'erreur disparaît. Cela aide à diagnostiquer le problème.

Pendant le débogage, vous pouvez formuler une hypothèse spécifique et essayer de la prouver ou de la réfuter en utilisant la méthode proposée ci-dessus.

Copiez-collez avec StackOverflow

Souvent, les développeurs copient et collent du code à partir de StackOverflow sans avoir une idée claire de ce que fait la section copiée. De telles actions ont un certain nombre de conséquences négatives, dont certaines sont implicites. Assurez-vous de faire attention à ce que vous ajoutez, essayez de comprendre quelles fonctions sont responsables de l'exécution du code inséré.

Soit dit en passant, souvent lorsque je pose une question sur StackOverflow, j'y réponds moi-même un peu plus tard, car je réfléchis à un problème pendant le processus d'écriture.

La même chose se produit lors d'une discussion d'un problème dans votre équipe. Vous trouvez vous-même une solution à votre question, simplement parce que vous réfléchissez à la cause du problème.

Réticence à ré-inspecter le code

L'une des méthodes de débogage les plus efficaces que je connaisse est d'étudier votre code - encore et encore. Dans certains cas, l'écriture d'un morceau de code à partir de zéro aide.

Incapacité de suivre les appels de fonction

L'apprentissage des appels de fonction dans votre application est également parfois utile. Il vous suffit de vérifier les variables et leurs valeurs attendues. Dans le processus, vous pouvez trouver des zones problématiques dans votre programme qui conduisent à son comportement étrange.

Ignorance du débogueur

Vous devez absolument apprendre à utiliser le débogueur. C'est le meilleur investissement de temps. Tous les IDE sont fournis avec de puissants outils de débogage qui fonctionnent à peu près de la même manière. Apprenez ces outils et vous résoudrez la plupart de vos problèmes lors de l'écriture de code.

Skillbox recommande:

Source: https://habr.com/ru/post/fr426051/


All Articles