LINUX.ORG.RU

doxygen и C++, примеры

 ,


1

2

Коллеги!

Встречали ли вы проекты написанные на C++ и качественно документированные при помощи doxygen?

Можете ли ткнуть пальцем, ежели встречали?

Хочется посмотреть на то, как это делают лучшие из нас.

Или может быть есть какая-то система документации встроенной в код лучшая чем doxygen, а я про нее ничего не знаю?

★★★

Встречали ли вы проекты написанные на C++ и качественно документированные при помощи doxygen?

Не существует в природе.

Или может быть есть какая-то система документации встроенной в код лучшая чем doxygen, а я про нее ничего не знаю?

Вот лучшая документация, с которой мне приходилось встречаться: https://linux.die.net/man/3/ev

kawaii_neko ★★★★
()

Как минимум Qt, OpenCV, GDAL, OpenSceneGraph, MongoDB C++ API. Ну конечно Qt - лидер. На работе иногда использую doxygen, но скорее больше для себя, чем по необходимости.

В целом система достаточно гибкая. Может и по исходникам пробежаться, чтобы сгенерировать документацию по функциям, так и дополнительные файлы можно вручную создать (в разных форматах) и поместить в требуемые пункты меню. Очень понравилась интеграция с PlantUML (эта такая хрень, которая генерирует UML диаграммы на основании текстового описания).

В целом, документацию хорошо описывающую что-либо можно хоть в блокноте сделать, тут скорее всего на первом месте стоит трудолюбие того, кто составляет документацию, насколько подробно он готов все разжевать, а не выбранная система.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 4)
Ответ на: комментарий от rumgot

Спасибо за список.

документацию хорошо описывающую что-либо можно хоть в блокноте сделать,

А вот поддерживать ее трудно. когда документация и исходный текст в двух разных файлах, то вероятность того что они разойдутся гораздо выше. В исходниках оно хотя бы глаза мозолить будет…

shaplov ★★★
() автор топика
Ответ на: комментарий от shaplov

Так руководства по использованию все равно нужно в отдельных файлах делать. Хотя сами функции кратко конечно удобнее описывать сразу в исходниках.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от moonmadness

Посмотри LLVM.

И увидишь отличный пример отсутствия документации по большей части.

xaizek ★★★★★
()

Как-то упоролся и написал документацию ко всему в одном проекте (но сейчас какие-то предупреждения уже появились), что-то группировал, стили правил. Можно глянуть так:

git clone https://github.com/xaizek/uncov.git
cd uncov
make doxygen
$BROWSER doxygen/html/index.html

Но у чего-то вроде Qt оно конечно эффектнее выглядит (хотя меня выкашивают всякие дебильные панельки, которые скрывают результаты поиска).

xaizek ★★★★★
()
Ответ на: комментарий от kawaii_neko

Не существует в природе.

Да. Это просто ничего не даёт. Самая трудоёмкая часть для исследования - взаимосвязь и правила взаимодействия компонентов. Код отдельных функций читается относительно легко, даже при большом размере.

mashmed135
()

У нас на работе. Только не С++, а С. Пример:

/*! \brief Максимальная длина имени и значения поля формы */
#define DD24_FORM_MAXLEN (255)

/*! \brief Флаг запущенных настроек */
static volatile bool process_executed = false;
/*! \brief Нить запущенных настроек */
static pthread_t process_thread;

/*! \brief Читает значение имени поля из запроса
 * \param[out] name Имя поля
 * \param[in] request Запрос
 * \param[in] caret Позиция каретки
 * \return Новая позиция каретки */
static u32 _name_read(char * name, bxi_bts * request, u32 caret)
PPP328 ★★★★★
()
Ответ на: комментарий от mashmed135

Да. Это просто ничего не даёт. Самая трудоёмкая часть для исследования - взаимосвязь и правила взаимодействия компонентов. Код отдельных функций читается относительно легко

Читается легко ага… Только вот фактически редко есть просто отдельные сущности. Чаще функция вызывает функцию, передает в параметре такой-то объект с такими-то свойствами. И фиг ты по функции разберешь, как именно ее предполагал разраб запускать. В документацим должно быть не только и не столько описание параметров, а еще и то, как это все преполагается использовать.

rumgot ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.