Narzędzia i najlepsze praktyki w celu zrozumienia cudzego kodu [zamknięte]

Czasami trzeba zagłębić się w kod kogoś innego, zrozumieć go, a może go naprawić / naprawić. Zastanawiam się więc, jakich narzędzi / praktyk używasz do tego celu? Nie chodzi o żaden konkretny język czy platformę, a raczej o ogólne porady.
Osobiście uważam, że bardzo przydatne jest uruchamianie omawianego kodu pod debuggerem (jeśli to możliwe, oczywiście), ustawianie punktów przerwania i przechodzenie przez kod.
Użyłem też kilku narzędzi UML z funkcjami inżynierii odwrotnej, aby zobaczyć duży obraz. Wizualizacja działa dla mnie całkiem dobrze.
Jest jedno narzędzie, którego użyłem całkiem sporo:Rozumiesz. To nie jest narzędzie UML, ale ma kilka wizualizacji kodu. Na przykład diagram przepływu sterowania dla funkcji, która nie jest częścią UML, ale czasami jest bardzo przydatny.
Słyszałem, że czasami ludzie piszą testy kodu, którego chcą się nauczyć, ale nie działa to dla mnie. Czasami kod, który chcę zrozumieć, nie jest zbyt testowalny.
Istnieją inne narzędzia, takie jak profilery, kontrolery zależności, loggery itp. Czy ktoś używa go z jakimkolwiek sukcesem? I jak?
Z czego zaczyna się pierwsza rzecz? Co dalej?

questionAnswers(5)

yourAnswerToTheQuestion