Debugging for begyndere
april 23rd, 2010. Kategori: ProgrammeringTips til debugging
Denne guide til bebugge rettet mod begyndere i programmering.
Jeg vil give konkrete tips og idéer samlet i 3 simple trin. Jeg bruger PHP og JavaScript eksempler, men metoderne til at debugge er universelle, og kan bruges i forbindelse med alle programmeringssprog.
Baggrunden er, at jeg i forbindelse med mit gæstebogs script får en del henvendelser om hjælp.
Basal debugging
Basalt set handler debugging om at isolere problemer. Det gør man ved at skille tingene ad og undersøge de enkelte dele. Virker hver enkelt del, som vi forventer?
3 simple trin til debugging
- Tjek, dobbelt tjek og triple tjek
- Skriv variabler ud
- Skil koden ad
1. Tjek - dobbelt tjek - triple tjek
Start med at tjekke og dobbelt tjekke alle indtastninger, parenteser, tegn etc. Er variabelnavne identiske? Er funktionskald og navne er stavet rigtigt? Er syntaksen korrekt? Når det er gjort, så tjek det hele en gang til…
2. Skriv dine variabler ud
Næste trin er at skrive dine variabler ud. Og fylde en masse print statements i din kode. Så kan du se hvilke værdier dine variabler har og hvor meget af koden, der bliver afviklet. Brug f.eks. echo i PHP og alert() i JavasScript:
PHP eksempel:
$brugernavn = $_GET['brugernavn'];
echo $brugernavn;if($brugernavn == “”){
echo ‘test1′;
do something…
echo ‘test2′;
}else{
do something else …
echo ‘test3′;
}
JavaScript eksempel:
var brugernavn = document.getElementById(‘brugernavn’).value;
alert(brugernavn);
if(brugernavn.length() < 3){
do something …
alert(‘test1′);
}else if{
alert(‘test2′);
do something else …
alert(‘test3′);
}
Super debug metode til at finde ud af, hvor langt du kommer i afviklingen af koden, før det går galt. Bliver koden i kodeblokkene afviklet, som du forventer?
Hardcode dine variabler
Du kan også prøve at hardcode dine variabler i stedet for at hente dem med dit script.
$brugernavn = “Nikolaj”;
Det er en god metode til at isolere og afdække, om det er når du henter data eller behandler data, at du får fejl.
3. Skil koden ad og simplificér den
Prøv at pille koden fra hinanden og gør den enkel, så du kan tjekke de enkelte dele. Prøv f.eks.
if(2 == 2){…
frem for:
if(strlen(trim($_GET['brugernavn'])) > 0 ){…
Så får du debugget om det er dine kodeblokke eller det er de betingelser, du har sat op i if-sætningerne, der er problemer med.
På samme måde kan du pille kodeblokke helt ud af for-løkker etc. Eller du kan simplificere dem ved at hardcode tallene i løkken som f.eks.:
for(i=0; i<5; i++;) {…
Bonus tips
2 almindelige syntaks fejl
Her er 2 meget almindelige fejl, hvor fejlmeddelelserne ikke umiddelbart afslører problemet.
PHP eksempel:
Parse error: parse error, expecting `’,” or `’;” in C:\wamp\www\test\minSide.php on line 13
Denne PHP parse error opstår, når du ikke har afsluttet den foregående linje med et semikolon.
JavaScript eksempel:
minFunktion is not defined
Denne JavaScript fejl optræder , når du forsøger at kalde en tidligere defineret funktion. Funktionen kan sagtens være defineret, men indeholder ´f.eks. en syntaks fejl som en krølle-parantes/tuborg-parantes for meget eller for lidt.
Google din fejlmeddelelser
Du er helt sikkert ikke den første der har problemet. Fjern lokale navne fra din fejlmeddelser og søg på Google. Måske du kan finde hjælp til at indsnævre problemet.
Værktøj til debugging
JavaScript udvikling foregår bedst i en Firefox browser, fordi Firefox har gode værktøjer til debugging af JavaScript. Brug enten Firefox’s indbyggede fejlkonsol eller Firefox plugin’et Firebug. Begge giver gode og overskuelige fejlmeddelelser.
Afrunding
Debugging er en fast bestanddel af al programmering. Når man programmerer laver man også fejl. Heldigvis bliver man som regel bliver både dygtigere og klogere af det. Og næste gang er det nogle helt andre fejl, man laver.
Kender du andre gode begynder tips, så smid endelig en kommentar.
Tilmeld RSS