Каким образом вы изучаете исходный код?

Честно говоря, для меня это очень сложная задача, будь-то изучение исходного кода какого-нибудь фреймворка или библиотеки, а также реализации разных алгоритмов. Тем не менее мне очень интересно, как все устроено изнутри. Хотелось бы узнать, как вы подходите к данной задаче и делаете ли это вообще.
  • Вопрос задан
  • 4087 просмотров
Решения вопроса 6
demimurych
@demimurych
Распечатка->карнадаш ластик->отладчик.
Начните с того что буквально каждую строку кода комментируйте карандашом, проверяя свои выводы в отладчике.
Уже через пару месяцев подобной практики Вы начнете замечать, что посмотрев на чужой код, какие то его части вам становятся понятны сразу же.
При должной практике скоро начнете чувствовать себя экстрасенсом, который буквально "угадывает" что какая часть кода делает, без необходимости просматривать каждую строчку кода.

Реверс инжениринг весьма увлекательное занятие. Это как какая то особая мышца которая тренируется практикой.
Ответ написан
afiskon
@afiskon
От интерфейса к кишкам.
Ответ написан
Комментировать
akubintsev
@akubintsev
Опытный backend разработчик
1) тесты
2) IDE
Ответ написан
Комментировать
@nonrblGyN4ik
Обычно достаточно названия метода, чтобы понять , что он делает в целом.

Я, почти всегда, начинаю с места начала исполнения программы и смотрю, что, когда и зачем вызывается в главном методе, дальше иду по этим вызовам, по очереди, и смотрю, что они делают там. Так как все делается линейно, ничего сложного.

Это срабатывает, когда код хорошо организован. А если в методе, который работает с интернетом, лежит метод(или еще хуже, если просто куча кода) , который берет данный из базы и отображает их на экране. В подобных случаешь, если деваться некуда, спасает отладчик.
Ответ написан
Комментировать
@m-haritonov
1. Узнаю в рамках какой систему будет запускаться программа, исходный код которой я изучаю.
2. Узнаю как происходит запуск программ в данной системе (ищу точки возможного входа в программу).
3. Прослеживаю пути следования данных, которые поступают в точки входа программы.
4. Ищу точки выхода программы (грубо говоря — участки кода, которые выполняют действия, выходящие за пределы изменения оперативной памяти программы (запись данных в постоянную память (файл на жёстком диске, база данных и т.п.), передача данных по сети, вывод данных в выходной поток и т.п.)).
Ответ написан
Комментировать
Shablonarium
@Shablonarium
Во-первых, перепечатываю код своими руками, во-вторых гуглю незнакомые слова,, такие как функции, методы или операторы, в-третьих, задаю вопросы на форумах по отдельным частям кода
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы