Быстро разобраться в новом проекте
20.02.2014
|
kaa.python |
Довольно часто возникает необходимость разобрать новый большой проект и не совсем очевидно с какой стороны подступиться к огромной горе исходных кодов которая свалилась на вас. Если вам повезло и проект написан на C++, C, Objective-C, Python, Java, PHP, C#, Фортран или VHDL то простое решение есть – Doxygen + GraphWiz.
Я не буду вдаваться в такие базовые вещи, как создание проектов в Doxygen, с этим и так все очень просто. Заметка базируется на предположении что базовый проект создан, пути к исходным кодам, которые необходимо изучить, прописаны и осталось сделать так, что бы по генерируемой Doxygen документации можно было быстро легко разобраться в проекте.
http://sysdev.me/learning-new-project/
Я не буду вдаваться в такие базовые вещи, как создание проектов в Doxygen, с этим и так все очень просто. Заметка базируется на предположении что базовый проект создан, пути к исходным кодам, которые необходимо изучить, прописаны и осталось сделать так, что бы по генерируемой Doxygen документации можно было быстро легко разобраться в проекте.
http://sysdev.me/learning-new-project/
20.02.2014 3 комментария |
KP>Довольно часто возникает необходимость разобрать новый большой проект и не совсем очевидно с какой стороны подступиться к огромной горе исходных кодов которая свалилась на вас. Если вам повезло и проект написан на C++, C, Objective-C, Python, Java, PHP, C#, Фортран или VHDL то простое решение есть – Doxygen + GraphWiz.
Для шарпа и VB есть решарпер, который, во-первых, позволяет много чего посмотреть по самому коду (заодно автоматично почистив некоторые виды мусора), без генерации графов, а во-вторых и графы генерить тоде умеет.
AVK>Для шарпа и VB есть решарпер, который, во-первых, позволяет много чего посмотреть по самому коду (заодно автоматично почистив некоторые виды мусора), без генерации графов, а во-вторых и графы генерить тоде умеет.
Да, в первую очередь этот подход нужен для C и C++, но и для коей каких еще языков сработает
KP>Довольно часто возникает необходимость разобрать новый большой проект и не совсем очевидно с какой стороны подступиться к огромной горе исходных кодов которая свалилась на вас. Если вам повезло и проект написан на C++, C, Objective-C, Python, Java, PHP, C#, Фортран или VHDL то простое решение есть – Doxygen + GraphWiz.
По мотивам твоей заметки разбирался с одним большим проектом, который в свою очередь раньше был небольшой частью ещё одного проекта. В проекте развесистые иерархии классов, шаблоны, бусты, всякие другие библиотеки... Сам проект математической направленности.
Doxygen + GraphWiz дал лишь приблизительную картину, целостного представления о проекте составить не получилось.
После попробовал погонять проект с lcov. Оказалось, что с ним можно быстро вникнуть в код на более низком уровне, сходу получилось выкинуть кучу неиспользуемых функций и классов, которые были привнесены извне. В общем рекомендую для С/С++.