Debuggowanie Eksperymentalne¶
Jedną z najważniejszych umiejętności, którą zdobędzesz jest debuggowanie (odpluskwianie). Chociaż czynność ta jest dość często frustrująca, stanowi jedną z najbardziej wymagających, interesujących i wykorzystujących siłę intelektu programisty.
Debuggowanie można porównać do pracy detektywa, w której posiadając pewne wskazówki i wnioski z przebiegu wykonanego programu dąży się do otrzymania poprawnego rezultatu.
Debuggowanie jest dziedziną doświadczalną, w której po teoretycznym znalezieniu błędu modyfikuje się program i testuje ponownie. Jeśli postawiona hipoteza była poprawa, wtedy otrzymany rezultat pokrywa się z przewidywanym, a całość programu jest o krok bliżej pomyślnego ukończenia. Jeśli postawiona hipoteza była błędna, należy pomyśleć nad nową. Jak słusznie wskazywał Sherlock Holmes, When you have eliminated the impossible, whatever remains, however improbable, must be the truth. (A. Conan Doyle, The Sign of Four)
Dla niektórych osób, programowanie oraz debuggowanie są tymi samymi czynnościami. Jednakże programowanie jest procesem stopniowego debuggowania aż do osiągnięcia finalnego rezultatu. Idea polega na rozpoczęciu stworzenia funkcjonalnego programu, który dzięki małym modyfikacjom poprzez debuggowanie w każdym momencie działa w sposób zamierzony.
Dla przykładu, kernel systemu Linux zawiera miliony linii kodu, ale u jego podstaw leży prosty program stworzony przez Linusa Torvaldsa, który posłużył mu do nauki nad układem Intel 80386. Larry Greenfield twierdzi, że jednym z wczesnych projektów Linusa był program, służący do zmiany zawartości wyświetlacza z AAAA na BBBB, który w późniejszym czasie ewoluował w system Linux. (The Linux Users’ Guide Beta Version 1).
Kolejne rozdziały książki przybliżą tematykę debuggowania oraz innych zagadnień programowania.
Sprawdź swoją wiedzę