Efektywne usuwanie błędów

Jeśli do tej pory odpluskwiasz („debagujesz”) oprogramowanie używając rozwiązania podobnego do PHP-owego var_dump lub JavaScript-owego console.log to robisz to mało efektywnie.

var_dump(„pupa”); die();

Nie znam języka, który nie dostarczałby porządnego debuggera (PHP Xdebug, JavaScript konsola developerska przeglądarki).
Nauczenie się jego szybkiej obsługi zajmuje zwykle co najwyżej kilka dni i przynosi niesamowite efekty jeśli chodzi o tempo w jakim można zlokalizować błąd w kodzie.

Debugger jest „ulgą dla twoich stóp”, kiedy uczysz się nowego frameworka, albo dostajesz w spadku sporą ilość kodu, który musisz utrzymywać lub rozwijać.
Bez niego musisz pokonać tysiące linii kodu, uruchamiając wszystko raz po raz od nowa.
Z debuggerem masz wszystko jak na dłoni. Możesz się zatrzymać w dowolnym momencie, zastanowić, zrozumieć i jechać dalej z koksem.

Zostań taksówkarzem

Jeśli upierasz się dalej, że var_dump-owe podejście jest wszystkim czego potrzebujesz i nie jest to spowodowane tylko twoją niechęcią do zmian, to proponuję zmianę zawodu z programisty na taksówkarza.

Wyobraźmy sobie osobę, która przeprowadza się do wielkiego miasta i stwierdza, że zostanie taksówkarzem (albo kierowcą Ubera).
Cóż jest trudnego w tej pracy? Jeździć samochodem potrafi. Głupi nie jest. W swoim rodzinnym mieście porusza się „z zamkniętymi oczami”.

No i tak jeździ bez nawigacji… bo jest ambitny, albo nie lubi nowych technologii.
I tak jeździ dowożąc ludzi w 40 minut tam gdzie mogliby być w minut 20.
I tak jeździ dowożąc ludzi za 50 zł zamiast za 30.
No i z głodu nie umrze. Klient się zawsze znajdzie. Kasa mniejsza ale też w sumie nie jest źle.

I tak po kilku miesiącach, albo latach, zna już miasto jak własną kieszeń, jeździ szybko, omija korki … i to wszystko bez nawigacji.
I chwali się znajomym, że ta nowa technologia (nawigacja) nie była mu wcale potrzebna…
Szacun „na dzielni” murowany.

Naprawiaj kod szybko

Inna opcja na zmianę to pożegnanie się z var_dump i nauczenie obsługi debugger.

Nauka ta nie jest trudna. W większości przypadków to wyłącznie kwestia zmiany przyzwyczajeń.
No może jedyna trudność to skonfigurowanie Xdebug. Ale nie martw się. Jak zaczynałem z nim przygodę to konfiguracja zajmowała mi co najwyżej 3 dni :E
Serio… 😀

Tak było kilka lat temu. Teraz w sieci można znaleźć masę artykułów, które wszystko wyjaśniają… no i zawsze można zapytać na Stacku.
Każde sensowne IDE* mają już wbudowane wsparcie dla debuggera i zazwyczaj osoba, która wie jak go używać będzie w stanie uruchomić go w 15 minut.

W 99% przypadków wystarczy zainstalować i włączyć moduł Xdebug i skonfigurować w go w następujący sposób:

* Jeśli to czego używasz (niby-IDE) nie pozwala na pracę z debuggerem to jest to jakiś badziew a nie IDE. Szybko to usuń i weź coś porządnego, np. PhpStorm.

W czasach, kiedy tworzy się coraz więcej mikrousług działających asynchronicznie debugger jest czymś bez czego moją pracę wykonywałbym kilka razy dłużej.

Programiści JavaScript mają jeszcze prościej bo wystarczy tylko postawić punk zatrzymania (break point) i już!

Zazwyczaj debugger pozwala na nie tylko na zatrzymanie wykonania kodu w danym miejscu ale również na ustawienie warunku, kiedy ma się zatrzymać w danym miejscu, np. $a > 10.
Można też „w locie” zmieniać wartość zmiennych.

Nie zawsze potrzebujesz debuggera

Są oczywiście sytuacje, kiedy nie potrzebujesz debuggera.
Czasem nie możesz go użyć bo trzeba np. szybko coś sprawdzić na produkcji a nie można tam włączyć Xdebug.
Jeśli jednak pracujesz w firmie, w której nagminnie dochodzi do takich sytuacji… to współczuję.

Debugger nie jest zazwyczaj też potrzebny, kiedy używasz czegoś lepszego – testów automatycznych 🙂

Ale prawdziwa moc drzemie w mieszance testy automatyczne + debugger.
Piszesz test, uruchamiasz i jeśli widzisz, że kod nie działa tak jak tego oczekujesz to uruchamiasz test z debuggerem – i jedziesz!
Gwarantuję, że takie zestaw narzędzi pozwoli ci pracować o niebo produktywniej.

Zakład o piwo

Jeśli podoba ci się twoja praca i miejsce w którym pracujesz to zrób wszystkim i sobie przysługę. Używaj debugger i pracuj efektywniej.
Szybko lokalizuj i usuwaj błędy i poświęć więcej czasu na pisanie nowych funkcji – niech firma zarabia więcej, żebyś ty dostał większą wypłatę!

Jeśli spróbowałeś i po tygodniu nadal wolisz var_dump to daj znać – postawię ci piwo w ramach rekompensaty.
A twoje nazwisko trafi na moją czarną listę ;D

Udanego odpluskwiania!
Damian Sromek

Komentarze
 

Damian Sromek

 

Dodaj komentarz