UDE: От исходного кода к качественной документации
1. Отправная точка: исходный код и комментарии
Основа любой качественной API-документации — это комментарии в исходном коде. В больших проектах (например, на C++) они являются единым источником истины. Без них автоматическая генерация документации попросту невозможна.
Вопрос лишь в том, как превратить эти комментарии в современный, удобный и быстрый сайт для разработчиков.
2. Как это решается сегодня — и где система ломается
Самый популярный инструмент для C++ — это Doxygen. Однако его родной формат вывода (HTML или XML) не подходит для современных генераторов статических сайтов (SSG), таких как Hugo, Docusaurus или VitePress, которые ожидают на входе Markdown.
Связка Doxygen + DoxyBook2 + Hugo
Чтобы обойти это ограничение, часто используют промежуточные конвертеры: Doxygen генерирует XML → DoxyBook2 конвертирует XML в Markdown → Hugo собирает сайт.
Это рабочий вариант, но у него есть серьезные ограничения:
- Отсутствие масштабируемости. Конвертер читает весь XML-граф в память целиком. На SDK масштаба десятков тысяч классов и методов этот процесс упирается в память и неоправданно долгое время обработки.
- Сложность кастомизации. Настроить вывод под разные форматы оформления одновременно — сложная задача, так как инструменты не проектировались для высокой гибкости.
3. Решение от UDE: единый конвейер
UDE полностью перестраивает процесс, убирая лишние этапы конвертации и оптимизируя работу с данными.

Архитектура UDE строится на четком разделении этапов:
- Collector извлекает данные напрямую из исходного кода.
- Parser переводит их в нормализованную языково-нейтральную модель — IR (Intermediate Representation).
- Renderer мгновенно собирает Markdown/HTML в формате, который понимает целевой SSG, без всяких промежуточных XML-костылей.
Преимущества такого подхода очевидны: нет лишнего шага конвертации, а из единой точки (IR) можно рендерить документацию в любых нужных форматах и стилях.
4. Скорость и предсказуемость
Для больших проектов критически важно время сборки. В UDE эта проблема решается с помощью инкрементального кэширования.

Вместо загрузки всего графа сущностей каждый раз, UDE пересчитывает только то, что реально изменилось.
- Кросс-платформенность. Пайплайн работает абсолютно идентично локально на Windows и в CI на Linux.
- Doc-as-code. Конфигурация того, что документировать, версионируется вместе с кодом и собирается в том же CI.
5. UDE и ручные руководства (DevGuide)
API-справочник, сгенерированный из кода, отвечает на вопрос “как устроены функции и классы”. Но он не может рассказать, “в каком порядке их вызывать для решения конкретной бизнес-задачи”. Для этого нужны DevGuide — написанные вручную статьи и туториалы.
UDE не пытается заменить этот ручной труд. Вместо этого он обеспечивает идеальную интеграцию: генерируемый API-справочник остается полным и всегда актуальным, органично соседствуя с ручными гайдами на страницах современных SSG.