Blog o spletnem programiranju in elektroniki
💬 👤
back Nazaj na blog
Programiranje

Kaj je razhroščevanje in zakaj ga vsak razvijalec potrebuje

ikona

Razhroščevanje je iskanje in odpravljanje napak v programski kodi. Napaka (bug) je vsako nepričakovano vedenje programa — od sesutja cele aplikacije do drobnega napačnega izpisa. Razhroščevanje ni postranska naloga, ampak ena najpomembnejših veščin vsakega razvijalca: nekateri podatki pravijo, da razvijalci preživijo kar polovico delovnega časa ravno ob iskanju napak.

console.log("Tako daleč sem prišel");

Izvor besede bug

Zgodba sega v leto 1947, ko so v Harvard Mark II računalniku našli pravo veščo (hrošča), ki je povzročal težave, in ga prilepili v dnevnik z opombo o »prvi dejanski napaki« (ang. bug). Resnica je še starejša — inženirji so napake imenovali tako že stoletje prej, a slavna vešča je besedo proslavila po vsem svetu.

Branje sporočil o napakah

Najosnovnejša veščina je branje napake. Vsako sporočilo o napaki pove tri stvari: kaj se je zgodilo, v kateri datoteki in na kateri vrstici. Razvijalcem, ki sporočila preberejo do konca, se napaka pogosto razkrije kar sama.

Fatal error: Uncaught TypeError:
Unsupported operand types: string + int
in /var/www/register.php on line 42

Izpis v konzolo

Najpogostejša tehnika je izpisovanje vrednosti med izvajanjem. Kaj trenutno vsebuje spremenljivka? Ali se je funkcija sploh izvedla? Izpis v konzolo ali dnevnik nam pove, kaj program dejansko dela — ne tisto, kar mi mislimo, da dela.

console.log(uporabnik); // JavaScript: izpise objekt
var_dump($podatki); // PHP: izpise vrsto in vsebino
print_r($rezultat); // PHP: izpise berljivo

Razhroščevalnik (debugger)

Naprednejše orodje je razhroščevalnik — program, ki omogoča ustaviti izvajanje kode na poljubni vrstici (prelomna točka), nato pa lahko po vrsticah spremljate potek izvajanja in v vsakem trenutku preverjate vrednosti spremenljivk. PhpStorm ima razhroščevalnik vgrajen, enako velja za razvijalska orodja v brskalnikih (DevTools).

  1. Nastavimo prelomno točko (breakpoint) v sumljivi vrstici.
  2. Zaženemo program v načinu za razhroščevanje.
  3. Ko se izvajanje ustavi, preverimo vrednosti spremenljivk.
  4. Pomikamo se korak za korakom naprej in opazujemo, kje vrednosti odstopajo od pričakovanj.

Metoda delitve

Ko napaka ni očitna, pomaga metoda delitve. Zakomentiramo polovico kode in preverimo, ali napaka ostane. Če je, se skriva v preostali polovici, če ne, v zakomentirani. Ponavljanje tega postopka hitro zoži iskanje na nekaj vrstic — pri dolgih datotekah je to lahko prava rešitev.

Preprečevanje napak

Veliko napak se da preprečiti, preden sploh nastanejo: jasno poimenovanje spremenljivk, majhne funkcije z eno nalogo in preverjanje tipov (TypeScript) zmanjšuje možnost za nastanek napak. V jeziku PHP že majhna sprememba prinese opazne rezultate: vklop strogega preverjanja tipov na začetku datoteke.

declare(strict_types=1);

Odpravljanje napak ni znak slabega razvijalca — prav nasprotno. Program brez napak še nikoli ni bil napisan, zato iskanje in odpravljanje napak ni moteča prekinitev dela, temveč del samega dela.

back Nazaj na blog