- Исследование CodeRabbit выявило, что код, сгенерированный ИИ, содержит в среднем в 1,7 раза больше проблем, чем написанный человеком.
- Основные недостатки AI-кода — ошибки в логике, уязвимости безопасности, низкая читаемость и высокая частота неэффективных операций.
- Для улучшения качества ИИ-кода рекомендуется использовать контекст проекта, автоформатирование, линтеры, тестирование и специализированные чеклисты для ревью.
Платформа CodeRabbit опубликовала результат анализа современного состояния сгенерированного искусственным интеллектом и человеческого кода на основе 470 реальных pull request’ов из открытых проектов GitHub. В выборке 320 примеров включали участие ИИ, а 150 были написаны только людьми. Исследование выявило, что код, созданный с помощью искусственного интеллекта, имеет примерно в 1,7 раза больше проблем по качеству, чем код, написанный разработчиками.
Основные проблемы, выявленные в AI-коде, охватывают ключевые аспекты качества программного продукта. В частности, логические ошибки и нарушения корректности встречаются на 75% чаще, что отражается в ошибках бизнес-логики, ошибочных конфигурациях и небезопасных ветвлениях. Уязвимости в безопасности появляются от 1,5 до 2 раз чаще — например, неверная работа с паролями и небезопасный доступ к объектам данных. Значительно страдает читаемость: ИИ-код демонстрирует в три раза больше проблем с именованием переменных и форматированием. Наибольший разрыв наблюдается в производительности — неэффективные операции ввода-вывода встречаются почти в 8 раз чаще по сравнению с человеческим кодом.
Одной из причин таких недостатков является отсутствие у ИИ контекста конкретного проекта. Модели не имеют доступа к бизнес-правилам, архитектурным ограничениям и стандартам кодирования, принятым в команде, из-за чего генерируемый код кажется технически правильным, но не соответствует специфике и правилам данного репозитория.
Для повышения качества и снижения рисков использования AI-кода специалисты CodeRabbit рекомендуют включать в запросы контекст проекта, автоматизировать форматирование и использовать линтеры на уровне системы непрерывной интеграции (CI). Также важным является требование наличия тестов для сложной логики, усиление мер по сканированию безопасности и применение специализированных чеклистов для ревью AI-кода с акцентом на обработку ошибок и валидацию.
