Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Credo:

1) ufaj intuicjom i sprawdzaj je;

2) szukaj prostych wyjaśnień źródeł buga;

3) pracuj na faktach, komputer to Twój przyjaciel i nie chce wprowadzać Cię w błąd;

4) bądź systematyczny, wytrwały i zachowaj spokój;

5) jeśli kod działał minutę temu, jaka była ostatnia zmiana?

NAJCZĘSTSZE BŁĘDY POCZĄTKUJĄCEGO

Galeria moich ciekawych błędów

Historia debugowania

Logiczne:

- OBOB (off by one bug)

- pętla nieskończona :-)

Składniowe:

- zgubienie nawiasu, "end"

- literówki

- błędy w stylu: "=" zamiast "=="

Zasobu:

- niewłaściwa wartość zmiennej

- błąd typu danych

Dostępu:

Żądanie zmiennej bez ustawienia dostępu (ograniczenia w Rails)

Filozofia debugowania

Kim jest ten, kto debuguje?

"Dupa" debugging - ewolucja

Śmieci w ustawieniach bazy danych

Undefined variable or method?

Credo cd.

LEVEL ONE:

napisanie w wybranych miejscach kodu “dupa”

LEVEL TWO:

napisanie "dupa 1", "dupa 2", "dupa 3" w wybranych miejscach.

LEVEL THREE:

napisanie dupa + numer linijki w wybranych miejscach.

6) Zastanów się zanim coś zmienisz,

"shotgun debugging" nie działa.

7) Jeśli znalazłeś inny błąd, który pozornie nie ma związku z błędem, którego szukasz, napraw go.

8) W stylu Sherlocka Holmesa powinieneś móc wyjaśnić jak na drodze poszczególnych kroków doszedłeś do wniosku, że bug jest tam gdzie go szukasz.

9) Bądź krytyczny wobec swoich przekonań na temat kodu.

10) Właściwym pytaniem nie jest dlaczego kod nie działa. Lepszym pytaniem jest:

co aktualnie robi twój kod?

na podstawie 11 zasad debuggingu Nicka Parlante (Stanfod University)

http://www.stanford.edu/class/archive/cs/cs106a/cs106a.1134/handouts/250%20Debugging%20Strategies.pdf

Zły typ danych

DEDUKCJA!

TECHNIKI DEBUGOWANIA

BYE BUG!

TECHNIKI ZAPOBIEGANIA

'You know my method. It is founded upon the observation of trifles.'

A) PRÓB I BŁĘDÓW

B) "DUPA DEBUGGING" (I SPRAWDZANIE WARTOŚCI ZMIENNYCH)

C) "GOOGLOWANIE"

D) DEBUGGER!

-The Bascombe Valley Mystery

A) CZĘSTE SPRAWDZANIE KODU

B) TECHNIKA NAJMNIEJSZEGO MOŻLIWEGO KROKU

C) ZAPISYWANIE SWOICH BŁĘDÓW I SPOSOBÓW W JAKI UDAŁO SIĘ JE ROZWIĄZAĆ

D) PISANIE TESTÓW AUTOMATYCZNYCH

E) UŻYWANIE GITA - W RAZIE TOTALNEGO ZABUGOWANIA ;-)

CO TO JEST BUG?

Skąd się biorą bugi?

Nieścisłe pisanie?

Przypadkowe zmiany w kodzie?

1) bezpodstawne założenia

2) złe wartości zmiennych

3) nieprawidłowa logika kodu

Filozoficznie mówiąc:

Większa rozdzielczość języka programowania niż myślenia programisty o tym języku.

NIEKTÓRE ZNACZENIA:

1. BŁĄD W KODZIE

2. NIEWYDAJNE ZACHOWANIE PROGRAMU

3. COŚ CO SPRAWIA, ŻE KOD DZIAŁA NIEZGODNIE Z OCZEKIWANIAMI

TESTOWANIE

PROSTE UJĘCIE:

JEŚLI NAPISANY PROGRAM NIE DZIAŁA...

ALBO ROBAK - INTRUZ W NASZYM

KOMPUTERZE

(ZOB. GRACE HOPPER BUG 1946)

NP. TEST UNIT; RSPEC; CUCUMBER

Pogłębia rozumienie kodu.

TO JEST W NIM BUG I TRZEBA DEBUGOWAĆ!

ŹRÓDŁA PREZENTACJI

Przy dobrym napisaniu dowodzi, że błędy są.

NAJWIĘKSZA TRUDNOŚĆ POCZĄTKUJĄCEGO...

http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

“testing can reveal the presence of

errors, but never their absence.”

- Edsger Dijkstra

DEBUGOWANIE

Learn more about creating dynamic, engaging presentations with Prezi