Анализ исходного кода (или как присоединиться к OpenSource проекту)
Модератор: Модераторы разделов
-
VoidExp
- Сообщения: 208
- Статус: Lead guitar adept
- ОС: Ubuntu
Анализ исходного кода
Вот на днях решил принять участие в одном опенсурсном проекте, хотя проектов в которых хотелось что-то допилить несколько... Скажем так, есть свободное время по вечерам, иногда и выходные, хорошие знания С/C++ и разработки приложений в среде *NIX в частности, почему бы и не "отплатить" открытому сообществу за все то что оно мне предоставило, хоть и в мизерной мере?
Собственно, чтобы не добавлять фичи методом костылей и изоленты, необходимо понимать архитектуру приложения, как все работает и быстро находить связи между отдельными модулями. Вот и решил спросить у форумчан, кто и как подходит к анализированию исходного кода? Какие методики и тулзы используете для этого? Было бы неплохо если знающий человек описал весь этот "процесс" step-by-step... Надеюсь высказал вопрос понятно.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Анализ исходного кода
1. чтение документации.
2. декомпозиция. осознание того, для чего служат те или иные части исходников программы.
2.1. самое крупное биение на части — каталоги.
2.2. дальше — файлы.
2.3. дальше — классы (если используются).
2.4. дальше — функции.
3. размышления. могут перемежаться с любым из предыдущих этапов.
2. декомпозиция. осознание того, для чего служат те или иные части исходников программы.
2.1. самое крупное биение на части — каталоги.
2.2. дальше — файлы.
2.3. дальше — классы (если используются).
2.4. дальше — функции.
3. размышления. могут перемежаться с любым из предыдущих этапов.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
VoidExp
- Сообщения: 208
- Статус: Lead guitar adept
- ОС: Ubuntu
Re: Анализ исходного кода
А можешь посоветовать и какую-то прогу которая помогает в этом?
-
agentprog
- Сообщения: 362
- Статус: Ad Astra per aspera
- ОС: openSUSE 11.4, Arch
-
Crazy
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Анализ исходного кода
/usr/bin/man + /dev/brain
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
mix1m
- Сообщения: 187
- ОС: openSUSE 11.2
Re: Анализ исходного кода
простите мне мою наивность, но неужели опенсорс проекты существуют без баг-трекинговых или еще каких-либо централизованных систем управления проектом (где храняться чейндж-реквесты и т.д.)?
Ну, и так как мне кажется что ответ на мой вопрос "нет", то можно предположить что существуют люди, которые знают "что" нужно делать, а в лучшем случае и "как".
Ну, и так как мне кажется что ответ на мой вопрос "нет", то можно предположить что существуют люди, которые знают "что" нужно делать, а в лучшем случае и "как".
Попытка - первый шаг к провалу (с) Гомер
-
VoidExp
- Сообщения: 208
- Статус: Lead guitar adept
- ОС: Ubuntu
Re: Анализ исходного кода
Вопрос не в том "как" или "что" нужно делать и я не совсем понял причем здесь баг-трекеры и системы реквестов. А выше упомянутый vim у меня уже который год установлен и работаю в нем давно, так что просьба такие остроумные ответы гуру-хацкеров придержать для себя. Вопрос в том, есть ли какие-то программы которые помогают эффективно анализировать исходный код, без тупого перечитывания оного строчку за строчкой, то есть позволяющие наглядно, "картинками" так сказать посмтреть на структуру проекта, а там уже по необходимоси можно и перечитать код интересующего модуля.
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Анализ исходного кода
VoidExp писал(а): ↑19.06.2010 21:00Вопрос в том, есть ли какие-то программы которые помогают эффективно анализировать исходный код, без тупого перечитывания оного строчку за строчкой, то есть позволяющие наглядно, "картинками" так сказать посмтреть на структуру проекта, а там уже по необходимоси можно и перечитать код интересующего модуля.
боюсь что в конечном счете Вы увидите что "король то голый"
то есть "с помощью ls, find, grep, vim/emacs и такой-то матери".
-
mix1m
- Сообщения: 187
- ОС: openSUSE 11.2
Re: Анализ исходного кода
вам пытались намекнуть, что ни одна программа за вас ничего анализоровать не будет. Не говоря уже о том, что есть проекты, где больше тысячи строк кода и от "картинки" можно ошалеть поболее чем от смотрения непосредственно в код..
ну, а вообще - http://www.aivosto.com/visustin.html. За такое нежалко и денег заплатить)
Попытка - первый шаг к провалу (с) Гомер
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Анализ исходного кода
ctags, cscope, global итп. Называются "браузеры кода". Для "въезжания в проект" толку от них обычно мало. Doxygen может, например, построить диаграмму классов (если проект на C++), но чаще всего и от неё толку мало. По опыту, единственный способ "въехать в проект" (по крайней мере, для больших и сложных проектов) - это пообщаться с архитектором. Часто архитектора могут заменить ведущие разработчики, но не всегда.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Анализ исходного кода
да, отличная штука для семи строк кода.mix1m писал(а): ↑19.06.2010 21:26ну, а вообще - http://www.aivosto.com/visustin.html. За такое нежалко и денег заплатить
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
mix1m
- Сообщения: 187
- ОС: openSUSE 11.2
Re: Анализ исходного кода
sash-kan писал(а): ↑19.06.2010 21:57да, отличная штука для семи строк кода.mix1m писал(а): ↑19.06.2010 21:26ну, а вообще - http://www.aivosto.com/visustin.html. За такое нежалко и денег заплатить
как и все подобные штуки. Но топикстартер настойчиво требует=)
Попытка - первый шаг к провалу (с) Гомер
-
eddy
- Сообщения: 3321
- Статус: Красный глаз тролля
- ОС: ArchLinux
Re: Анализ исходного кода
Не сказал бы, что тысяча строк - много. У меня дохленький проектик больше занимает:
Код: Выделить всё
23:38 /Data/documents/SAO/videoguide/videoguide-last
cat html/*[sl] |wc -l
664
23:38 /Data/documents/SAO/videoguide/videoguide-last
cat *[ch]|wc -l
3816
23:38 /Data/documents/SAO/videoguide/videoguide-last
cat *c|wc -l
3293А по теме, честно говоря, сам бы хотел, чтобы была какая-нибудь программка, позволяющая по дереву кода строить зависимости в виде графов (какая функция в каком файле находится, из какой функции какая вызывается и т.п.), а то иногда приходится подымать старые проекты для модернизации, и уходит очень много времени, чтобы уловить структуру (это несмотря на то, что комментирую я все довольно тщательно).
RTFM
-------
KOI8-R - патриотичная кодировка
-------
KOI8-R - патриотичная кодировка
-
mix1m
- Сообщения: 187
- ОС: openSUSE 11.2
Re: Анализ исходного кода
да я уже понял, что у меня с сарказмом сегодня плохо..
Попытка - первый шаг к провалу (с) Гомер
-
Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Анализ исходного кода
Вот doxygen для поддерживаемых языков это умеет. Но для проекта "больше чем из семи строк" такой граф обычно сильно смахивает на полный граф на стопиццот вершин. Ничего кроме выкрикивания междометий разглядывание такого графа обычно не даёт.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
kamre
- Сообщения: 243
- ОС: Win7/Ubuntu 11.10
Re: Анализ исходного кода
Вообще у проекта должна быть документация, с нее и нужно начинать. А потом открываешь исходники в какой-нибудь нормальной IDE вроде Eclipse и будет там иерархия классов, навигация по коду и построение иерархии вывзовов для методов. Еще бывает полезно с отладчиком походить. Я примерно так пытался разбираться в исходниках CDT, когда хотел кое-что подправить.