(Это ответ я отправил на вопрос некоторое время назад. Я изменил его немного, чтобы соответствовать этот вопрос.)
Опыт показал мне, что есть 3 основные цели у вас есть при изучении унаследованной системы :
- Узнайте, что должен делать код.
- Узнайте, как это делается.
- (Реально) Узнайте, почему он делает это так, как он.
Все три части очень важны, и есть несколько уловок, которые помогут вам начать работу.
Во-первых, не поддавайтесь искушению просто щелчком ctrl-click (или независимо от того, что использует ваша IDE), чтобы обойти код. Вероятно, вы не сможете держать все в своем воображении таким образом, особенно когда каждая строка заставляет вас смотреть на несколько других классов, чтобы понять, что это такое, поэтому вам нужно уметь удерживать несколько уровней стек в голове.
Прочитайте, если это возможно, документацию; это обычно помогает вам быстро получить умственную основу, на которой можно построить все, что следует.
При необходимости проведите тестовые примеры.
Не бойтесь спросить кого-то, кто знает, есть ли у вас вопрос. Конечно, вы не должны тратить время других на глупые запросы, но если есть что-то, чего вы просто не понимаете (это особенно верно в отношении более концептуальных вопросов, таких как: «Разве не было бы более целесообразным реализовать это как ___ "или что-то в этом роде), вероятно, стоит выяснить ответ, прежде чем вы что-то порвите и не знаете, почему.
Когда вы, наконец, приступите к чтению кода, начните с логического «основного» места и идите оттуда. Не просто читайте код сверху вниз, либо в алфавитном порядке, или что-нибудь (это, вероятно, очевидно).
Я всегда смущаюсь, когда я начинаю делать это, когда я узнаю о кодовой базе, которую мне не хватает в моем понимании, и любые комментарии, которые у меня есть о коде, также будут отсутствовать. Добавление комментариев для себя, поэтому временно не проблема, но оставить их для других может вызвать больше путаницы. –