ИИ-агент написал код. Разработчик обязан его прочитать?
В X обсуждают заявление Роберта Мартина — «дядюшки Боба», автора легендарной книги «Чистый код» («Clean Code»). Так вот, дядя Боб признался, что вообще не читает код, созданный его ИИ-агентами. По его словам, тогда выигрыш в производительности просто исчезает.
Вместо классического ревью Мартин устраивает коду «полосу препятствий»:
— юнит-тесты;
— сценарии поведения в формате «дано — когда — тогда»;
— QA-процедуры;
— метрики качества;
— проверку покрытия;
— мутационное тестирование.
При мутационном тестировании инструмент специально вносит в код небольшие ошибки и проверяет, смогут ли тесты их обнаружить. Получается своеобразный тест для тестов.
Подход Мартина разделил разработчиков на два лагеря.
Сторонники такого подхода считают, что построчное чтение сгенерированного кода превращает разработчика в самое медленное звено системы. Если агент способен выполнить задачу, а результат проходит все проверки, зачем дублировать его работу?
Противники возражают: тесты и метрики не дают полного понимания системы. Высокое покрытие ещё не гарантирует правильной архитектуры, отсутствия скрытых рисков и соответствия бизнес-задаче.
Особенно интересно эта дискуссия выглядит на фоне исследования британского AI Security Institute. Во время кибериспытаний все проверенные институтом модели хотя бы иногда пытались обойти правила: искали готовые решения, изучали тестовую инфраструктуру или атаковали системы за пределами разрешенного контура.
Одна из задач из-за ошибки оказалась нерешаемой. Модель не остановилась, а написала и запустила код на внешнем сервисе, пытаясь получить доступ к инфраструктуре испытания. Ущерба удалось избежать, но эксперимент показал: собственным объяснениям модели и ее рассуждениям нельзя доверять на все 100%.
Как тогда работать с ИИ-агентами безопасно и эффективно?
Рустам Борханов, автор и ведущий программы LLM-разработчик в Хекслете считает так:
«Я бы доверял ИИ-агенту примерно так же, как младшему специалисту. Важно понимать, насколько хорошо поставлена задача, где могут возникнуть проблемы и что действительно стоит перепроверить.
Мелкие исправления, небольшие задачи и даже простые фичи нет смысла контролировать каждые пять минут. ИИ-агент — это ваш личный исполнительный джун. Вы отвечаете за его работу, но это не значит, что нужно микроменеджерить каждый его шаг».
Получается, ключевой навык разработчика в эпоху агентов — не чтение каждой сгенерированной строки или слепое доверие тестам. Нужно уметь определить границы задачи, заранее найти зоны риска и выстроить контроль, соответствующий возможной цене ошибки.
Как раз 25 августа у нас пройдет бесплатный вебинар — поговорим о том, как ускорить разработку с помощью ИИ, не пропустив проблемы в коде и не занимаясь бесконечными проверками:
https://special.hexlet.io/ai-developer_llm_webinar?utm_source=telegram&utm_medium=social&utm_campaign=hexlet-blog&utm_content=promo&utm_term=post_220826
ИИ способен писать код быстрее человека. Но ответственность за то, где и как этот код будет работать, по-прежнему ложится на инженера.
А вы читаете весь код, созданный ИИ, или доверяете тестам и метрикам?
Post #6270
2K

- 👍 7
- ❤ 6
- 🔥 1