AnalfabetaDemon NR.11

Studiowałeś, czytałeś kursy programistyczne, tworzyłeś swoje własne projekty.

W końcu przyszedł czas by popracować i niestety nie będziesz pisał kodu.

Będziesz robił to, co w 95% robi każdy programista, czyli będziesz czytał cudzy kod.

Żaden podręcznik do tego ciebie nie przygotowuje.

To jest właśnie demon Analfabety. Rozumienie cudzego kodu to też umiejętność, ale można ją zdobyć dopiero w miejscu pracy.

Chociaż zawsze można zacząć czytać cudze repozytoria na GitHub i sprawdzać rozumienie tego kodu.

Analfabeta rozumie składnie języka programowania, ale jest ślepy, gdy patrzy na cudzy kod.

Czasami problem leży nie tylko w umiejętnościach, ale w głowie takiego analfabety. On za każdym razem, gdy czyta linijkę cudzego kodu zadaje sobie niewłaściwe pytania jak np. “jak bym to inaczej napisał” , “jaki debil to pisał?” , “dlaczego ten kod wywołuje 8 razy to samo?”.

Cudzy kod nie zawsze jest piękny, ale posiadanie własnych oporów w postaci setek pytań, które prowadzą do nikąd też nie pomaga. Trzeba najpierw zrozumieć jak kod działa, a potem można sobie zadawać te wszystkie pytania.

Problem programisty, który ma demona Analfabety być może jest powiązany z tym, że nasz kolega jest Izolatorem. Czyli boi się po prostu zadawać pytania i dlatego nie rozumie cudzego kodu. Chce pokazać, że bez żadnej pomocy zrozumie jak to działa. Tylko, że 4 godziny później analfabeta jest ciągle w tym samym punkcie.

Jest to problem bo w najgorszym wypadku ten człowiek z twojego zespołu będzie pisał swój własny kod tylko dlatego, że nie rozumie jak działa obecny.

Duplikując w ten sposób rozwiązania.

Jak poradzić sobie z analfabetą

Po pierwsze Analfabetę trzeba nauczyć paru pomocniczych sztuczek, które ułatwiają spacerowanie po kodzie, jak np. przycisk w Visual Studio jeśli masz zainstalowanego Resharpera “Find Usages”. W ten sposób znajdziemy wszystkie użycia danej klasy bądź metody.

Find Usages

Alternatywnie zawsze możesz skorzystać z przycisku “Find All References”.

Find All References

Warto mu pokazać, że skrót klawiszowy F12 przechodzi do definicji danej klasy w Visual Studio.

Pokaż mu też, że “ CTRL + , “ wywołuje szybkie okno szukania elementów w danej solucji.

CTRL + ,

Gdy cały kod operuje na interfejsach i wstrzykiwanych zależności warto mu pokazać, że w tym wypadku bardzo jest pomocna opcja “Go to Implementation”.

Go to Implementation

W sumie po prostu analfabetę trzeba wyedukować jak ma szukać elementów w cudzym kodzie. Jeśli ten człowiek ma użyć jakiejś gotowej biblioteki, to warto, aby osoba, która stworzyła ten kod w 5 minut objaśniła kluczowe punkty działania tego kodu.

Oszczędzi to twój czas i jego czas.

A co jeśli ty jesteś analfabetą

Zapoznaj się ze sztuczkami w swoim IDE.

Pytaj kolegów, którzy pisali ten kod o co w nim chodzi.

Ostatecznie też nie bądź za bardzo surowy dla siebie, istnieje czasem tak źle napisany kod, że BUGI znajdują się dopiero po tygodniu analizy tego syfu.