Как разобраться в исходном коде такого проекта как Mysql?

Уак вообще люди разбираются с такими проектами как Mysql к примеру где открываешь файл - а там 20К строк кода.
И таких файлов много. Уже даже натравил LXR на это дело с горем пополам. Пока не помогает )
  • Вопрос задан
  • 751 просмотр
Решения вопроса 1
@nirvimel
Как вообще люди разбираются с такими проектами как Mysql, где 20К строк на файл

Эти люди из Oracle быстро разобрались, что они могут потерять работу, если кто-то кроме них самих сумеет разобраться в их коде.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Поиск использования и определения очень помогает. В любой IDE есть. В Vim/Emacs/Других плагинами реализуется.

Ну и не ждите, что вы выучите исходники, просто читая их, и будете досконально в них разбираться. Так не бывает.
Сначала определитесь, зачем вам смотреть исходники. Маленькая производительность - подрубаем профайлер, ищем узкие места. Лезем в код, оптимизируем, тестируем. Повторяем пару итераций.
Не хватает функционала? Например, новый тип добавить хотим. Ищем модули, которые реализуют похожий функционал. Делаем свой тип по подобию существующих. Тестируем сервер, реплику. Профилировщик натравливаем и т.д.
И вот вы уже разобрались в некоторых частях.

А без цели лезть в код, что бы "стать спецом" - ничего не выйдет.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) разбираемся для чего каждый файл нужен, пытаемся прикинуть общую картину, из чего состоит проект (какие компоненты, модули и т.д.). В этом нам могут помочь многочисленные статьи и официальная документация. описывающая архитектуру проекта.

2) далее углубляться нужно исключительно по каким-то причинам а не просто так. Скажем если вас интересуют какие-то конкретные вещи. Например... зачем вам изучать устройство MyISAM просто так если его уже мало кто использует?

В целом же fshp правильно все сказал.
Ответ написан
Комментировать
@KaminskyIlya
Конечно, если поставить цель: "с наскоку" разобраться в проекте, который делала большая команда специалистов, - то мало чего выйдет. Особенно при отсутствии хорошего практического опыта в языке, на котором проект написан. Но если поставить цель освоить именно вот-этот-проект (не важно, MySQL, Linux core, Eclipse IDE, ReactOS, ... ), то вполне. Поначалу любой из них кажется гигантским лабиринтом, который ты никогда не выучишь наизусть. Но, поверьте, это только по-началу.
И да, соглашусь с fshp:
не ждите, что вы выучите исходники, просто читая их

Нужно научится собирать этот проект. Затем научиться вносить изменения (в свою песочницу) с целью проведения экспериментов. И только после уверенного освоения практики вноса работающих правок в проект, переходить к более серьезным вещам в нем.

Вообще сама идея и желание досконально разобраться в устройстве известного открытого проекта достойна похвалы. В любом случае, вы получите бесценный опыт. Научитесь терпимо относиться к чужому коду, понимать или предчувствовать ход мысли других людей. Может быть вам также придется "в аврале" изучать чужой проект уже по заданию работодателя. Кто знает, если вы досконально разберетесь в этом проекте, может быть присоединитесь к команде Oracle и станете одним из ведущих разработчиков? ;)

P/S
Не хочу кидать камень в сторону команды MySQL, но файл на 20K строк кода это, имхо, признак "smell code". Хотя кто я такой, чтобы судить. ;)
Ответ написан
Ваш ответ на вопрос

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

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