28 votes

Comment gardez-vous le code de débogage de la production?

Il arrive aux meilleurs d'entre nous.

alt text

Particulièrement lorsqu'il s'agit de langues sans construite en fonctions de débogage comme les points d'arrêt et regardé variables, ces bugs mordre les développeurs. Débogage de code, d'alerte et de Réponse.Écrit, apparaissent dans le code de production.

Comment voulez-vous séparer le débogage des préoccupations de fonctionnalité ou de code en javascript, php, ou vbscript? Comment vous assurez-vous ceux de débogage modifications n'entrent jamais dans les environnements de production?

13voto

KingCrunch Points 45168

La plus simple méthode

define("DEBUG", true);


if (DEBUG) {
    echo "Debug Method";
}

Pour js ses semblables.

3voto

ajreal Points 31456

2voto

Thomas Langston Points 2083

Il y a plusieurs façons de cacher le code de débogage dans la production, mais peu pour l'enlever (quand un compilateur ne peut pas automatiquement le supprimer).

Je me cache de code de débogage par:

  • L'affichage lorsque l'utilisateur connecté est un développeur ou testeur.
  • La sortie d'un journal/base de données lors de la côté serveur.

- Je le supprimer par la recherche de commentaires spéciaux avant le déploiement:

  • alert("false") //TODO:REMOVE DEBUG CODE

Mes collègues de travail a également suggéré:

  • Primordial alert pour vérifier une variable debug. (Effets secondaires?)
  • L'écriture d'un alertDebug méthode pour vérifier une variable debug. (Quelqu'un va s'en souvenir?)
  • La vérification pour voir si firebug était en cours d'exécution

    if(window.console && window.console.firebug) { alert("you are using firebug"); }

2voto

ircmaxell Points 74865

Une méthode est une variable d'environnement. Dans la configuration de votre serveur, vous pouvez définir une variable d'environnement-à-dire de débogage ou pas. Les serveurs de production serait configuré pour de faux, et le développement de vrai. De cette façon, tout ce que vous faites dans le code est de vérifier la variable d'environnement:

En PHP:

if (getenv('DEBUG_MODE')) {
    var_dump($foo);
}

De cette façon, il n'y a pas moyen de l'oublier, car il va automatiquement s'éteindre. Mais si vous avez VRAIMENT besoin de l'activer dans la production, il suffit de basculer l'interrupteur...

2voto

jaydel Points 5968

Il ne peut pas être parfait, mais j'ai une macro dans mon éditeur qui me permet d'ajouter de débogage et l'enveloppe appropriée de repérage des commentaires. J'ai aussi un script que j'ai exécuter plus tard qui déchire ce genre de choses en retour. Accordé, il m'a fallu un certain temps pour vraiment faire confiance à ce mécanisme, mais au fil du temps, je suis devenu à l'aise avec elle.

Ma préférence est d'éviter de devoir le vérifier dans le code de débogage. Évidemment, comme avec tout autre "règle", il y a des exceptions à cela, mais parce qu'il est facile de rater des choses plus tard, je n'aime pas l'archiver.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X