![]() |
Как проверять код который написал AI — личный опыт
Как проверять код который написал AI — личный опыт
Начну сразу: код, сгенерированный AI, далеко не всегда готов к бою без правок и доработок. Да, он здорово помогает выстрелить из пушки автоматизации на рутинных задачах, экономит время и нервы, но без внимательной проверки ты рискуешь получить нерабочий или небезопасный код. У меня накопился небольшой опыт работы с автогенерацией от GitHub Copilot, OpenAI API и Claude Code, и я хочу поделиться своими наблюдениями, лайфхаками и чек-листом проверки, которые помогут не облажаться. Что это такое и как это работает Генерация кода AI — это когда ты даёшь машине четкое задание или просто начинаешь писать, а модель подсказывает или дописывает куски кода, которые, по её мнению, соответствуют твоему запросу. Например, GitHub Copilot умеет дописывать функции и целые блоки прямо в редакторе на основе твоих комментариев или названий методов. OpenAI API позволяет отправить сложный запрос и получить, например, функцию на Python или полноценный класс. Windsurf и подобные инструменты могут собирать скелет приложения, структуру классов и прочее. Идея в том, чтобы сэкономить время на шаблонах и часто повторяющихся задачах, но при этом не забывать, что AI не знает особенностей твоего проекта и может упустить нюансы. Где это полезно использовать - Быстрая заготовка для фронтенда (например, структура компонентов React) или бэкенда (базовые роуты, CRUD на Express или Flask) - Генерация тестов и documentation – AI неплохо пишет unit тесты, комментарии и ReadMe, которые потом можно отредактировать - Создание шаблонов и повторяющихся блоков кода, например, одинаковая логика в разных местах - Эксперименты с новыми технологиями – можно запросить пример или паттерн, чтобы посмотреть, как это обычно делается - Помощь в исправлении багов и рефакторинге — AI иногда предлагает варианты проще или короче, хотя всё равно нужна проверка - Автоматизация монотонных задач типа написания парсеров, конвертеров форматов и простых функций Практические примеры из моей практики 1. Сортировка списка через Copilot Попросил написать функцию сортировки массива чисел. Copilot быстро сгенерировал рабочий код с обычным алгоритмом. Но сразу видно, что без проверки это решение не учитывает исключения: например, когда в списке попадаются null или undefined. Оптимизации для больших массивов тоже нет — используется встроенная сортировка, которая в некоторых языках нестабильна. В итоге пришлось доработать проверку входных данных и заменить алгоритм на более подходящий для моих условий. 2. Парсер JSON через OpenAI API Для небольшой задачи с JSON API попросил сгенерировать парсер, который разбирает входящий JSON и преобразует в объект нужной структуры. Получил приличный код, который хорошо работает с простыми случаями. Но когда данные стали сложнее – с вложенными объектами и массивами – парсер развалился. Пришлось вручную расширять поддержку вложенности и добавлять обработку ошибок. 3. Скелет приложения через Windsurf Для прототипа попросил собрать основу приложения с базовыми сервисами, роутами и формами. Машина сгенерировала удобный каркас, но логика бизнес-правил, обработка ошибок, валидация ввода — всё это пришлось дописывать самому. Это нормально, только важно понимать, что AI не заменит разработчика полностью. Типичные ошибки при работе с кодом от AI - Потеря времени на исправление синтаксиса, который модель выдала с ошибками (например, пропущенные скобки, неправильный отступ, неверное использование ключевых слов) - Отсутствие проверки логики — функция кажется рабочей, но при тестировании падает или ведёт себя не так - Игнорирование обработки ошибок — например, не учитываются исключения или неправильные данные - Плохая безопасность — часто генерация не предусматривает защиту от SQL инъекций, XSS, механизмы аутентификации и другие важные аспекты - Недостаточная оптимизация — код может быть рабочим, но неоптимальным, что сказывается на производительности - Слепое доверие — просто взять и вставить сгенерированный код без понимания того, что он делает, рискованно Мой чек-лист проверки кода от AI перед тем, как запускать в проект 1. Прочитать весь сгенерированный код и понять логику, что он делает 2. Проверить синтаксис — можно быстро пропустить через линтер или IDE с проверкой кода 3. Оценить обработку ошибок — что происходит при неправильных данных, исключениях? Есть ли try/catch или аналогичные блоки? 4. Проверить влияние на безопасность — используемые функции, допустимы ли входные данные, уязвимости? 5. Написать или сгенерировать тесты, которые покрывают сценарии использования кода 6. Потестировать код на разных входных данных и проверить крайние случаи 7. При необходимости оптимизировать и доработать алгоритмы под конкретную задачу 8. Заглянуть в документацию или комментарии — если их нет, подумать, как лучше объяснить логику для команды 9. Если используешь готовые библиотеки или API, проверить совместимость версий и лицензии 10. Проводить ревью кода с коллегами — даже если AI помогал, коллективный взгляд всегда полезен FAQ по проверке кода от AI Вопрос: Можно ли полностью доверять сгенерированному AI коду и быстро его пускать в продакшн? Ответ: Нет, в большинстве случаев нельзя. AI — это мощный инструмент подгонки и шаблонов, но он не понимает бизнес-логику и не гарантирует безопасность. Всегда надо проверять, тестировать и дорабатывать. Вопрос: Помогает ли использование нескольких моделей AI сразу? Ответ: Да, иногда интересно сравнить решения, которые предложат разные сервисы. Иногда Copilot выдаёт один вариант, а OpenAI или Claude другой и более подходящий. Но и тут важна проверка. Вопрос: Какие языки программирования лучше подходят для генерации кода AI? Ответ: В основном это популярные языки с большими корпусами данных — Python, JavaScript, Java, C#. Совсем экзотические языки поддерживаются хуже, бывают ошибки и неточные подсказки. Вопрос: Стоит ли использовать AI для написания критически важного кода, например, безопасности или финансовых расчетов? Ответ: Лучше не полагаться полностью на AI для чувствительных частей. Он может помочь с шаблонами, но решение задач с повышенными требованиями должны проходить тщательный аудит и тестирование. Вопрос: Как уменьшить количество ошибок в AI-коде? Ответ: Четко формулируй запросы, давай контекст, используй комментарии для уточнения, не бойся править и задавать AI уточняющие вопросы. Чем больше информации — тем качественнее ответ. Заключение Автогенерация кода — классный помощник, который здорово разгружает от рутинных манипуляций и ускоряет работу. Но без подробной проверки и понимания, что тебе выдал AI, никуда. Используй инструменты разумно: как вдохновение, черновик или генератор шаблонов, а свою голову не отключай. Обычно на практике получается именно так — AI тебе помогает, но не заменяет ведение разработки. Рассказывайте, как вы проверяете и дополняете сгенерированный код? Какие есть свои методы или инструменты? |
Я обычно просто запускаю сгенеренный код в отдельной среде, чтобы посмотреть, работает ли он вообще. Если что-то не так, быстро пробую разные тестовые данные, чтобы найти баги. Иногда просто правлю очевидные ошибки по синтаксису, а потом уже копаюсь глубже. Бывает, такой код сильно помогает, но без проверки вставлять сразу в проект точно нельзя.
|
| Время: 01:12 |