Инструменты и лучшие практики для понимания чужого кода [закрыто]

Иногда нужно копаться в чужом коде, понимать его и, возможно, реорганизовывать / исправлять. Поэтому мне интересно, какие инструменты / практики вы используете для этого? Речь идет не о каком-то конкретном языке или платформе, а о некоторых советах в целом.
Я сам считаю очень полезным запускать соответствующий код в отладчике (если это возможно, конечно), устанавливать точки останова и проходить через код.
Также я использовал несколько инструментов UML с функциями обратного инжиниринга, чтобы увидеть общую картину. Визуализация работает очень хорошо для меня.
Есть один инструмент, который я использовал совсем немного:Понять, Это не инструмент UML, но у него есть куча визуализаций для кода. Например, диаграмма потока управления для функции, которая не является частью UML, но иногда это очень полезно.
Я слышал, что иногда люди пишут тесты для кода, который они хотят выучить, но он не работает для меня. Иногда код, который я хочу понять, не очень тестируем.
Существуют и другие инструменты, такие как профилировщики, средства проверки зависимостей, средства ведения журнала и т. Д. Кто-нибудь пользуется им с успехом? И как?
С чего начать с первого использования? Что дальше?

Ответы на вопрос(5)

Ваш ответ на вопрос