Avant-propos
Avez-vous déjà eu l'impression qu'il y avait un fantôme dans le monde lorsque vous déboguez un certain morceau de code ?
Avez-vous déjà eu l'impression que lors du débogage d'une API, il y avait un problème avec l'appel d'une interface tierce ou une documentation incorrecte ?
Avez-vous déjà débogué un bug et avez-vous toujours pensé que la source du problème était la mauvaise façon de l'utiliser ?
Avez-vous déjà eu l'impression que lors de l'installation d'un service, la documentation ou l'environnement ne correspondait pas aux exigences ?
Croyez au processus et aux méthodes, et ne vous laissez pas tromper par les résultats.............
Aperçu
Le débogage du code est souvent similaire à l'enquête sur une affaire, mais l'importance des résultats est différente. La police enquête sur les affaires pour le bien de la stabilité des personnes, tandis que nous débogueons pour la stabilité du système. Dans ce cas, nous ne devons accuser injustement aucun morceau de code ou programme, de peur qu’il ne reçoive une punition déraisonnable.
Certaines des méthodes de processus suivantes proviennent d'un résumé personnel. D'un point de vue personnel, certaines des méthodes précédentes sont accumulées grâce à une expérience à long terme. Bien sûr, elles sont plus théoriques en référence, mais en tant que méthode personnelle, elles peuvent. être plus adapté aux DS comme moi.
Méthode de test
Méthode de débogage procédural du code
La première chose à laquelle il faut prêter attention lors du débogage du code est le processus. Vous devez clarifier les idées qui mènent au résultat final, c'est-à-dire le processus de commission du crime. Vous pouvez obtenir le résultat du crime à partir de l'étape. -suivi étape par étape dans le processus de commission du crime. Lors de l'analyse du processus criminel, chaque point suspect doit être marqué (c'est-à-dire les informations du journal mentionnées dans le code). Après un tel processus d'analyse, des tests en boîte noire sont effectués, des entrées sont ajoutées et les résultats sont vérifiés. Enfin, vérifiez votre jugement en fonction des notes à chaque étape pour en trouver la raison.
La solution ci-dessus est une méthode d'ajustement procédural. Les avantages de cette méthode sont évidents. Vous pouvez analyser directement l'ensemble du processus via un test. Cependant, cette méthode prend beaucoup de temps pour clarifier votre propre logique de code, mais il est nécessaire de clarifier la logique des autres. codes. Il est difficile d’atteindre le ciel.
Méthode de débogage des tests unitaires
L'objectif fondamental des tests unitaires est de garantir le fonctionnement normal d'une certaine fonction, classe ou module fonctionnel, y compris les tests et la vérification des situations anormales. En tant que programmeur, la méthode de vérification préférée est "empiler" (empiler signifie fournir de fausses données par défaut). Cette méthode est très pratique à ajuster, mais un inconvénient est qu'elle ne peut pas être réutilisée, car après avoir vérifié qu'elle est normale, , De nombreux développeurs le commenteront ou le supprimeront, donc si nous terminons le développement dans l'environnement de développement, mais que nous voulons le vérifier dans l'environnement de test, nous devons réécrire un morceau de logique d'empilage. Donc, en le regardant de cette façon, quand. il s'agit du réseau en direct, alors ce sera plus gênant. Puisqu'il y a tellement d'inconvénients, vous pouvez essayer ce qui suit.
Ajouter une classe de test unitaire. Cette classe doit contrôler ses autorisations. Elle ne peut être exécutée que via une connexion en arrière-plan ou une ligne de commande. La fonction de cette classe est de détecter la logique clé du système et de générer les résultats de test correspondants. . Il faut croire que toutes les classes d'interface peuvent être testées via des classes de tests unitaires. Les programmeurs se demandent souvent : devrions-nous faire cela ? En fait, nous devons vraiment le faire. Après tout, de nombreux tests sont désormais effectués sous forme de tests en boîte noire.
Cette méthode de débogage convient au processus de développement et peut garantir que notre code réseau actuel fonctionne normalement après sa publication. J'espère que tout le monde intégrera ce processus dans la phase de développement lors de la planification du temps de développement.
Méthode de positionnement rapide
Les deux premiers processus compliqués sont-ils trop idéalistes ? Mon code ne fait que 100 lignes et le système n'est pas compliqué. Si tel est le cas, effectuez rapidement une analyse de positionnement. On croise souvent
1. L'entrée est normale et la sortie est anormale
2. L'entrée est normale, la logique est anormale et la sortie est anormale
3. L'entrée est anormale, la logique est normale et la sortie est normale
4. Anomalie d'entrée, anomalie logique, rien de sortie.
Dans mon processus de développement personnel, je rencontre souvent certains des types de problèmes ci-dessus. Par exemple, lors du développement de Node.js, je rencontre des invites string.length indiquant que la chaîne n'a pas de méthode de longueur. À ce moment-là, j'étais confus et je me suis demandé pourquoi les autres chaînes ont une méthode de longueur, pourquoi pas celle-ci ? De nombreux étudiants devraient savoir que le problème est que cette chaîne n'est pas du tout une chaîne, cela signifie simplement que vous l'avez idéalisée en une chaîne, ce qui signifie qu'il y a quelque chose qui ne va pas dans ce que vous saisissez. La meilleure façon de localiser ce problème est donc d’imprimer l’entrée et d’imprimer la sortie.
Peut-être que d'autres programmes ne sont pas si simples, mais le plus basique est de juger l'entrée et la sortie des fonctions qui rencontrent des exceptions dans la fonction principale, afin qu'elles puissent être rapidement localisées.
Rappelez-vous : ne le sortez pas de son contexte et pensez que c'est juste.
Les méthodes et processus ci-dessus sont uniquement résumés sur la base de PHP ou Node.js. Il peut y avoir des similitudes ou des différences pour C & C. Si vous ne l’aimez pas, ne le vaporisez pas, regardez-le et chérissez-le.