Na czym spędzamy najwięcej czasu pisząc kod?

Zastanawialiście się kiedyś na czym spędzamy najwięcej czasu w czasie pisania kodu? Czy to na na samym pisaniu? Na testowaniu? A może na zrozumieniu dokumentacji oraz specyfiki zadania? Ja długo się zastanawiałem nad tym i postanowiłem to sprawdzić. O wynikach właśnie chcę napisać w tym wpisie.

Zrozumienie specyfiki zadania, dokumentacji

To zajmuje bardzo dużo czasu, ale nie najwięcej. Owszem projektowanie może zająć bardzo dużo czasu, ale w wpisie ten temat pomijam. Zajmujemy się etapem już po zaprojektowaniu. Najczęściej zaczynamy implementować bardzo szybko zaraz po przeczytaniu dokumentacji i ewentualnie po jakimś czasie idziemy dopytać o szczegóły. Tutaj nie marnujemy zbyt dużo czasu, chociaż pewnie zależy to od projektanta ;).

Pisanie testów lub testowanie kodu

Zauważyłem, że nie stosując TDD sama implementacja testów zajmuje, więcej czasu niż implementacja samego kodu. Musisz wymyślić przypadki użycia, aby sprawdzić każdą ścieżkę funkcji. Im gorzej napisana metoda tym gorzej się ją testuje. Przychodzi z pomocą testowanie manualne, aby pominąć pisanie testów. Ewentualnie olewamy testy niech to robią inni. Ja za każdym razem próbuje jakkolwiek zweryfikować swój kod, bo tak powinni robić profesjonaliści. Zajmuje mi to masę czasu, ale w ramach testów jeżeli wykryje jakiś błąd (a nikt nie jest nieomylny) zyskuje czas, który bym zmarnował na szukanie błędu (a to jest o wiele cięższe niż sprawdzenie od razu).

Pisanie kodu

To akurat zajmuje nam najmniej czasu. W zależności kto jak szybko potrafi pisać oraz jak szybko myśleć zajmuje to chwilę. Zastanawiamy się czy zrobić tak czy inaczej, ale zajmuje to na prawdę bardzo mało. O ironio! W trakcie implementacji najmniej tracimy czasu na samo pisanie.

Czytanie kodu

I tutaj właśnie Was pewnie zaskoczę, w trakcie pisania kodu najwięcej czasu spędzamy nad czytaniem jego. Dlaczego? Nie wierzysz? Nagraj swoją godzinną pracę nad kodem i sam sprawdź. Chęć napisania kolejnej linijki najczęściej kończy się zerknięciem co było wcześniej. Zaczynając pisać funkcję czytamy, jak będziemy ją wykorzystywać. Weryfikujemy czy czasami nie posiadamy już takiej implementacji. Czytamy kod wokół tego co piszemy. Ciągle i nieustannie. Masz coś do dopisania lub zmienienia. Musisz przeczytać kod, który już istnieje nie ma innej możliwości. Pisząc testy musisz przeczytać napisany kod. I tak za każdym razem. Eksperyment z nagraniem siebie wykonałem i przyznaje, że sam się zdziwiłem ile można przeczytać kodu w ramach implementacji jednej funkcji. A bo trzeba sprawdzić co przyjmuje funkcja, co ona zrobi z naszym obiektem. Jak ona jest wykorzystywana i gdzie?

Wniosek

Powinniśmy pisać bardzo czytelny kod, aby nie marnować jeszcze więcej czasu na jego czytanie. Skoro swoje zasoby wykorzystujemy w ramach tego nie marnujmy ich. Im czytelniejszy kod tym szybciej napiszemy kolejną funkcjonalność. Im więcej mało czytelnego kodu tym dłużej będziemy się zastanawiać co jest napisane zamiast co jeszcze napisać. Zapraszam do komentowania.

Comments

Popular posts from this blog

Why TDD is bad practice?

How correctly imitate dependencies?

Software development using Angular 5 with Spring Boot