Задать вопрос
@TanakaKuma

Как разбирать чужой код?

Хочу сделать небольшой видео плеер для mkv файлов. Нашел на github библиотеку для работы с форматом. Документации почти нет, только теория касательно структуры формата и примеры для чтения информационных заголовков. Для считывания нужных данных я так и не нашел. Попытался залезть в код VLC что бы посмотреть примеры, но понял что без знания как работает сама библиотека я далеко не уеду. Поэтому хочу спросить у знающих людей, как поступать в ситуации когда имея на руках только исходники библиотеки понять как она работает? Я искал информацию по этой теме и здесь, и на других форума, но все ответы подразумевают что я уже неплохо знаком со всеми составляющими кода.
  • Вопрос задан
  • 1024 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
MvcBox
@MvcBox
Software Engineer [C/C++/JS(for Node.js)/etc]
Как разбирать чужой код?

Документации почти нет

Добро пожаловать в реальный мир ;)
А если серьезно, то не существует какого-то определенного универсального алгоритма, который поможет разобрать код. Все сугубо индивидуально. Вам придется по крупицам восстанавливать ход мыслей того, кто это писал.
Возможно ничего нового я для Вас не открыл, но как есть.

#offtop
как поступать в ситуации когда имея на руках только исходники библиотеки понять как она работает?

Исходники - это еще большая роскошь) Некоторые успешно переписывают приложения имея на руках только скомпилированный бинарник без отладочной информации)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Комментировать
anton_reut
@anton_reut
Начинающий веб-разработчик
Наверно прозвучит странно но некоторый код я читаю "справа-налево", или с конца к началу (PHP), серьезно, иногда так понятнее почему-то.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
В 99% случаев программисты являются пользователями чужого кода. А для этого им не нужно погружаться в имплементацию. По хорошему нужно понять назначение библиотеки. Ее API. И посмотреть модульные тест-кейсы как она тестируется. Там будет очевидно применение.

Поэтому автору не нужно разбирать код. Тем более что для современных проектов код перевалил за сотни мегабайт (на минуточку Война и Мир занимает едва-ли 5 мегабайт) и изучать его весь безсмысленно.

По конкретно формату mkv. Это аналог xml только бинарный. Его не надо крякать или ломать или реверс-инжинерить код. Это совершенно открытый формат. Его спецификация опубликована. И чтение ее даст больше пользы чем ковыряние кода. Поймешь спеку - и сразу будет понятно что код делает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы