Быстро разобраться в новом проекте

kaa.python kaa.python
Довольно часто возникает необходимость разобрать новый большой проект и не совсем очевидно с какой стороны подступиться к огромной горе исходных кодов которая свалилась на вас. Если вам повезло и проект написан на C++, C, Objective-C, Python, Java, PHP, C#, Фортран или VHDL то простое решение есть – Doxygen + GraphWiz.

Я не буду вдаваться в такие базовые вещи, как создание проектов в Doxygen, с этим и так все очень просто. Заметка базируется на предположении что базовый проект создан, пути к исходным кодам, которые необходимо изучить, прописаны и осталось сделать так, что бы по генерируемой Doxygen документации можно было быстро легко разобраться в проекте.

http://sysdev.me/learning-new-project/
AndrewVK
AndrewVK
20.02.2014 07:55
Здравствуйте, kaa.python, Вы писали:

KP>Довольно часто возникает необходимость разобрать новый большой проект и не совсем очевидно с какой стороны подступиться к огромной горе исходных кодов которая свалилась на вас. Если вам повезло и проект написан на C++, C, Objective-C, Python, Java, PHP, C#, Фортран или VHDL то простое решение есть – Doxygen + GraphWiz.


Для шарпа и VB есть решарпер, который, во-первых, позволяет много чего посмотреть по самому коду (заодно автоматично почистив некоторые виды мусора), без генерации графов, а во-вторых и графы генерить тоде умеет.
... << RSDN@Home 1.2.0 alpha 5 rev. 100 on Windows 8 6.2.9200.0>>
kaa.python
kaa.python
21.02.2014 07:00
Здравствуйте, AndrewVK, Вы писали:

AVK>Для шарпа и VB есть решарпер, который, во-первых, позволяет много чего посмотреть по самому коду (заодно автоматично почистив некоторые виды мусора), без генерации графов, а во-вторых и графы генерить тоде умеет.


Да, в первую очередь этот подход нужен для C и C++, но и для коей каких еще языков сработает
Nuzhny
Nuzhny
24.03.2014 10:20
Здравствуйте, kaa.python, Вы писали:

KP>Довольно часто возникает необходимость разобрать новый большой проект и не совсем очевидно с какой стороны подступиться к огромной горе исходных кодов которая свалилась на вас. Если вам повезло и проект написан на C++, C, Objective-C, Python, Java, PHP, C#, Фортран или VHDL то простое решение есть – Doxygen + GraphWiz.


По мотивам твоей заметки разбирался с одним большим проектом, который в свою очередь раньше был небольшой частью ещё одного проекта. В проекте развесистые иерархии классов, шаблоны, бусты, всякие другие библиотеки... Сам проект математической направленности.
Doxygen + GraphWiz дал лишь приблизительную картину, целостного представления о проекте составить не получилось.
После попробовал погонять проект с lcov. Оказалось, что с ним можно быстро вникнуть в код на более низком уровне, сходу получилось выкинуть кучу неиспользуемых функций и классов, которые были привнесены извне. В общем рекомендую для С/С++.