Legacy code – jak go zrozumieć

Legacy code jak go zrozumieć

Wstęp

Chyba każdy lubi pracować w projekcie rozwojowym gdzie używa się nowych technologii. Jednak nie zawsze jest tak pięknie. Często zdarza się, że musisz zrobić coś w starym projekcie. Niestety jedyna osoba która go zna obecnie jest na urlopie. Najważniejszą kwestią jest zrozumieć co się dzieje w zastanym kodzie. Kilka poniższych punktów może w tym pomóc.

Testy w zastanym kodzie

Jeśli w legacy codzie nie ma testów to warto je napisać. Na początek wystarczą testy dla klasy, metody którą masz zmodyfikować. Dzięki temu Twoje zmiany nie powinny zepsuć obecnego działania systemy. Co ważniejsze poznajesz wtedy działanie aplikacji. Podczas takich testów należy przejść pozytywną ścieżkę. Mimo tego, że może to być skomplikowane. Jak napisać taki test? Po pierwsze spróbuj zamockować zależności oraz weryfikuj ich wywołania. W sytuacji kiedy jakiś wyjątek zostanie rzucony, test się kończy. W następnym mockujesz jego zachowanie aby przejść dalej. Po przejściu testów, powinieneś mieć wiedzę o tym co dzieje się w danym fragmencie kodu, które parametry są potrzebne i jakie zależności są wywoływane.

Legacy code to kod, który nie ma testów.

Michael Feathers

Debugowanie i logowanie

W niektórych sytuacjach napisanie testów dla legacy code może być trudne. Warto wtedy wspomóc się debuggerem. Krok po kroku prześledź co się dzieje, w jakim stanie jest dana metoda. Dzięki logowaniu możesz wypisać ważne dla Ciebie parametry lub dodatkowe komentarze.

debugowanie z legacy code
debugowanie z legacy code

Pisanie i rysowanie

Innym sposobem aby zrozumieć zastany kod jest użycie kartki i opisanie tego co się dzieje. Takim opisem może być tekst, rysunek, mapa myśli. Po prostu wszystko dzięki czemu będziesz w stanie odkryć jak i dlaczego kod zachowuje się w ten sposób. W rezultacie Twoje notatki będą pomocne przy dalszej pracy nad nim.

Mały refactor legacy code

Ostatnim punktem ale nie najmniej ważnym w celu zrozumienia jak działa legacy code jest mały refactor. Zacznij od najprostszych elementów takich jak zmiana nazwy metod, zmiennych. Wyciągnij niektórych elementy do osobnych metod, zrób czytelne ify. Dzięki tej drobnej zmianie Twój kod będzie bardziej czytelny i jednocześnie bardziej zrozumiały.

Praca z legacy codem jest trudna i może być frustrująca. Często jest bardzo ciężko go zrozumieć. Powyższe rady nie rozwiążą wszystkich problemów i nie zawsze się sprawdzą przy pracy nad zastanym kodem. Jednak dzięki nim poznanie starego systemu może być dla Ciebie łatwiejsze.

Przykład pracy z zastanym kodem w praktyce znajduje się tutaj.