Краткий обзор проекта
У клиента была корпоративная программная система, основная часть которой была написана на Java и JavaScript. Со временем кодовая база выросла до нескольких тысяч файлов, но единая техническая документация по ней так и не была создана.
Это осложняло ввод новых разработчиков в проект, сопровождение системы, работу с изменениями и ответы на запросы, связанные с внутренними проверками и требованиями безопасности. Документировать код вручную было слишком долго и дорого, особенно с учетом объема проекта и сложности бизнес-логики.
При этом клиент не мог использовать внешние облачные ИИ-сервисы, поскольку кодовая база содержала проприетарную бизнес-логику и должна была оставаться внутри контролируемой инфраструктуры. Поэтому было необходимо разработать приватное решение, которое анализировало бы код локально и позволяло быстро формировать документацию в едином формате.
- Регион: Европа
- Индустрия: Корпоративное ПО
- Сроки: ~2 месяца
Задача
Клиенту нужно было автоматизировать подготовку технической документации для большой закрытой кодовой базы и сохранить контроль над исходным кодом.
Основными задачами проекта стали:
- Автоматическая подготовка документации для Java- и JavaScript-кода
- Обработка около 3100 файлов исходного кода
- Описание классов, методов, зависимостей и ключевой бизнес-логики
- Приведение документации к единой структуре для всех репозиториев
- Сокращение ручной работы разработчиков при документировании кода
- Ускорение процесса онбординга новых инженеров в проект
- Исключение передачи исходного кода во внешние ИИ-сервисы
- Развертывание обработки кода в приватной инфраструктуре
- Снижение затрат на запуск языковой модели и обработку больших объемов данных
Решение
Команда СКЭНД разработала систему для автоматической подготовки документации к закрытым Java- и JavaScript-проектам. Решение обрабатывало репозитории пакетами, анализировало исходные файлы и формировало технические описания, которые использовались во внутренней базе знаний и в работе инженерных команд.
Система разбирала структуру кода, выявляла классы, методы, зависимости и связи между компонентами. Затем языковая модель, обученная на задачах анализа кода, формировала понятное описание: назначение модулей, ответственность методов, используемые данные и взаимодействие частей системы.
Вся ИИ-обработка выполнялась локально на приватной GPU-инфраструктуре. Для запуска модели использовался Ollama, а за анализ кода и генерацию документации отвечала Qwen2.5 Coder. Такой подход позволил не передавать исходный код во внешние сервисы и одновременно контролировать затраты на обработку больших объемов данных.
Документация формировалась в едином стиле, близком к практикам Javadoc и JSDoc, что упрощало чтение, поиск информации и дальнейшее сопровождение системы.
Ключевые возможности
- Автоматическая подготовка технической документации для Java- и JavaScript-проектов
- Пакетная обработка тысяч файлов исходного кода
- Анализ классов, методов, зависимостей и бизнес-логики
- Единый формат документации для разных репозиториев
- Локальный запуск языковой модели без использования внешних ИИ-сервисов
- Документирование внутренней кодовой базы без передачи файлов за пределы инфраструктуры клиента
- Использование GPU-сервера для ускорения работы модели
- Снижение расходов на обработку большого объема файлов
- Документация в стиле Javadoc и JSDoc
- Материалы для внутренней базы знаний и быстрого ввода новых разработчиков в проект
Технологический стек
- Языки проектов: Java, JavaScript;
- Фреймворки проектов: Spring Boot, React;
- Запуск языковой модели: Ollama;
- Языковая модель: Qwen2.5 Coder;
- Инфраструктура: сервер с NVIDIA H100 GPU;
- Обработка кода: пакетный разбор исходных файлов и автоматическая подготовка документации;
- Формат документации: Javadoc, JSDoc.
Результаты
Клиент получил приватную ИИ-систему для автоматической подготовки технической документации к закрытой кодовой базе. Решение обработало более 3100 файлов исходного кода и помогло привести документацию по Java- и JavaScript-проектам к единому формату.
Документирование впоследствии стало занимать меньше времени у разработчиков, а новым инженерам стало проще разбираться в архитектуре, бизнес-логике и связях между компонентами. При этом исходный код не передавался во внешние облачные сервисы: вся обработка выполнялась в приватной инфраструктуре клиента.
В результате клиент получил:
- Автоматическую документацию для более чем 3100 файлов исходного кода
- Единый формат технических описаний для Java- и JavaScript-проектов
- Сокращение объема ручной работы для разработчиков
- Ускорение процесса ввода новых инженеров в проект
- Локальную ИИ-обработку без передачи кода во внешние сервисы
- Контроль затрат на запуск языковой модели
- Базу для дальнейшего сопровождения и развития корпоративной системы