Сгенерированный код часто выглядит готовым: компилируется, проходит дымовый тест, красиво отформатирован. Именно поэтому он опасен — ошибки сидят не в синтаксисе, а в логике, граничных случаях и зависимостях. Вот порядок проверки, который занимает несколько минут и отсеивает большинство проблем.
Шаг 1. Прочитать и понять
Правило простое: непонятный код не попадает в проект. Прочитайте как ревьюер: что делает каждая функция, какие входы и выходы, где обработка ошибок. Если кусок не понимаете — попросите модель объяснить построчно или упростить. Вставка «как есть» превращает чужой черновик в вашу техническую задолженность.
Шаг 2. Автоматика: линтер и тесты
Прогоните линтер и статический анализ — они ловят устаревшие паттерны и потенциальные ошибки. Затем тесты: если их нет на этот кусок — попросите модель их написать, но проверьте, что тесты проверяют именно поведение, а не тавтологию (тест, написанный по ошибочному коду, закрепляет ошибку).
Шаг 3. Зависимости и API
Модель предсказывает правдоподобные имена, а не проверяет существование:
- каждый импортированный пакет должен существовать в официальном реестре — выдуманное имя может оказаться вредоносным дублёром;
- сигнатуры функций сверяйте с документацией вашей версии библиотеки: модель могла знать другую версию или предложить устаревший метод;
- конфиги и миграции читайте особенно внимательно — там ошибки дороже всего.
Шаг 4. Безопасность
Быстрый список: секреты и ключи не захардкожены; пользовательский ввод валидируется; SQL-запросы собираются параметрами, а не конкатенацией; ошибки не отдают наружу внутренние детали; права проверяются на сервере, а не только в интерфейсе.
Шаг 5. Граничные случаи
Пустой ввод, ноль, отрицательные числа, очень длинная строка, одновременные запросы, недоступная сеть — генерация редко обрабатывает края сама. Попросите модель перечислить граничные случаи для этого кода и проверьте, что они покрыты.
Шаг 6. Маленькими порциями
Лучшая проверка — та, что почти не нужна: просите код небольшими кусками под конкретную задачу. Проверить 30 строк легко, 300 — уже работа, а 3000 — иллюзия проверки.
Что дальше
Место кода в общем процессе показывает «ИИ в цикле разработки ПО», а почему модели уверенно предлагают несуществующее — «Галлюцинации: почему ИИ ошибается и как проверять ответы».