Инженеры Google объясняют, как использовать искусственный интеллект для улучшения разработки программного обеспечения

В 2024 году написание кода ИИ проникло во все сферы жизни, глубоко повлияв на весь жизненный цикл программного обеспечения. Так что вопрос в том, AI код инструменты используются люди говорят хорошо, но почему мы, как правило, использовать программное обеспечение не чувствует большой прогресс? Это потому, что мы используем ИИ неправильным образом?
Недавно Адди Османи, глава инженерного отдела Google и автор бестселлеров Amazon, рассказал нам о том, как на самом деле выглядит кодирование с помощью ИИ в передовых разработках, поделился проблемами и возможностями, которые инструменты ИИ открывают в реальном мире.
Как инженеры используют ИИ?
В целом существует две различные модели разработки команд с помощью ИИ: "бутстрапперы" и "итераторы". Обе модели помогают инженерам (и даже пользователям со слабым техническим образованием) сократить путь от идеи до реального кода.
Bootstrappers
В эту категорию входят такие инструменты ИИ, как Bolt, v0 и screenshot-to-code, которые характеризуются:
- Начните с чертежа или грубой концепции;
- Используйте искусственный интеллект для создания полной начальной базы кода;
- Возможность получить рабочий прототип за несколько часов или дней;
- Сосредоточены на быстрой проверке осуществимости идей
Это впечатляющий рабочий процесс. Например, независимый разработчик может использовать Bolt для превращения дизайна Figma в рабочее веб-приложение в кратчайшие сроки. Хотя это не совсем производственный уровень, он достаточно хорош, чтобы получить первые отзывы пользователей.
Итераторы
Эта категория в основном отвечает за ежедневный рабочий процесс разработки, включая Cursor, Cline, Copilot и WindSurf Такие инструменты не столь "броские", как вышеперечисленные, но более практичные, например:
- Автоматизация завершения кода, предоставление предложений по коду;
- Выполнение сложных задач по рефакторингу кода;
- Создание тестового кода и документации;
- "Побратимство партнеров по программированию" как решение проблем программирования
Хотя оба метода могут значительно ускорить разработку, как говорится, "бесплатного обеда не бывает".
Скрытые издержки "скорости ИИ"
Используется старшими инженерами Курсор возможно Второй пилот Подобные инструменты ИИ могут за считанные минуты создать базовую основу для целой функции, дополнив ее соответствующими тестами и документацией - это похоже на волшебство.
Но при ближайшем рассмотрении выясняется, что наряду с рекомендациями ИИ старшие инженеры делают следующее:
- Рефакторинг сгенерированного ИИ кода на более мелкие модули;
- Добавьте к этому умение справляться с различными экстремальными ситуациями;
- Оптимизация определения типов и дизайна интерфейса;
- Добавьте механизм комплексной обработки ошибок;
- Даже ставя под сомнение архитектурные решения, предлагаемые ИИ.
Другими словами, они применяют накопленный годами инженерный опыт для формирования и ограничения производительности ИИ, который отвечает за ускорение внедрения кода, но человеческий опыт гарантирует, что код будет поддерживаться - вы не можете иметь одно без другого.

Однако начинающие инженеры, как правило, не обращают внимания на эти критические шаги. Они, скорее всего, примут вывод ИИ целиком, что приведет к так называемому "карточному домику" - коду, который выглядит законченным внешне, но может легко развалиться под действием реальных нагрузок.
интеллектуальный парадокс
Таким образом, на самом деле ИИ лучше помогает опытным разработчикам, чем новичкам, что несколько противоречит интуиции.
Старшие инженеры используют ИИ для быстрого прототипирования идей (чтобы понять требования), создания базовых реализаций (чтобы облегчить последующие усовершенствования), изучения альтернативных решений известных проблем и т. д;
Вместо этого новички часто напрямую принимают неправильные или устаревшие решения, предлагаемые ИИ, игнорируют ключевые вопросы безопасности и производительности, не знают, как отладить код, созданный ИИ, и в итоге создают хрупкую систему, которую не до конца понимают.
Вопрос 70%
Неинженеры, пишущие код с использованием искусственного интеллекта, часто сталкиваются с досадной дилеммой: они могут сделать 70% работы удивительно быстро, но конечный 30% оказывается исключительно мучительным.
Проблема 70%" раскрывает текущее состояние разработок с помощью ИИ, которые начинаются так, как будто это находка, но затем реальность "ударяет в лицо".
Реальность обычно такова:
- Попытка исправить небольшую ошибку -->
- ИИ предлагает, казалось бы, разумное изменение -->
- Это изменение нарушает остальную часть кода -->
- Попросите ИИ устранить возникающие проблемы...
- Были созданы две новые ошибки -->
- бесконечный цикл
Этот цикл особенно болезнен для неинженеров, которым не хватает опыта, чтобы понять, что именно пошло не так.
Опытные разработчики, столкнувшиеся с ошибками, могут предположить возможные причины и решения, основываясь на многолетнем опыте и распознавании образов. Без этих знаний вы, по сути, "копаетесь" в коде, который не до конца понимаете, и проблемы могут быть бесконечными.

парадокс обучения
Есть и более глубокая проблема: предоставление неинженерам доступа к инструментам для написания кода ИИ может фактически помешать их обучению.
Код генерируется и выполняется, но "разработчики" не понимают основополагающих принципов. В этот момент они упускают возможность изучить основные паттерны программирования, развить навыки отладки и обдумать архитектурные решения, которые в будущем нужно будет поддерживать и расширять.
В результате "разработчики" постоянно обращаются к ИИ для решения проблем, не имея достаточного опыта, чтобы справиться с ними самостоятельно.
Лучший способ использования инструментов для написания кода ИИ для неинженеров - это, вероятно, "смешанный режим":
- Быстрое создание прототипов с помощью искусственного интеллекта
- Потратьте немного времени, чтобы понять, как работает сгенерированный код
- Изучите основные концепции программирования и научитесь использовать искусственный интеллект
- Создавайте свою базу знаний шаг за шагом
- Использование ИИ в качестве инструмента обучения, а не просто генератора кода
Но это требует терпения и целеустремленности, а это совсем не то, для чего многие используют инструменты ИИ - они просто хотят получить быстрое решение.
Проблема 70%" показывает, что современный ИИ не является тем "идеальным ИИ", которого многие ожидают. В конце концов, работа 30% (создание программного обеспечения, пригодного для использования в производственной среде, его сопровождение и т. д.) по-прежнему требует реальных инженерных знаний, которые не могут быть полностью заменены ИИ.
передовая практика
Адди Османи, понаблюдав за десятками команд, выработал несколько лучших практических подходов:
- Модель "первый черновик ИИ"
Позвольте искусственному интеллекту генерировать базовую реализацию кода, вручную просматривать и выполнять модульный рефакторинг, добавлять комплексную обработку ошибок, писать комплексные тестовые примеры и документировать ключевые решения. - Модель "Непрерывный диалог"
Начинайте новый диалог ИИ для каждой отдельной задачи; сохраняйте контекст сфокусированным и лаконичным; часто пересматривайте и фиксируйте изменения; поддерживайте плотный цикл обратной связи. - Модель "доверяй, но проверяй"
Используйте искусственный интеллект для генерации исходного кода; вручную проверяйте все критические пути; автоматизируйте тесты для различных граничных случаев; регулярно проводите аудит безопасности.
Настоящее будущее искусственного интеллекта?
Несмотря на эти проблемы, авторы с оптимизмом смотрят на роль ИИ в разработке программного обеспечения. Главное - в полной мере использовать реальные преимущества ИИ:
- Ускорение известно
ИИ отлично помогает нам реализовать уже известные шаблоны, как партнер по программированию, обладающий бесконечным терпением и высокой скоростью набора текста. - Изучите возможности
ИИ отлично подходит для быстрого создания прототипов идей и изучения различных подходов, как песочница, в которой мы можем быстро протестировать концепции. - процедура автоматизации
ИИ значительно сокращает количество времени, которое мы тратим на создание примеров кода и решение повседневных задач программирования, позволяя нам сосредоточиться на более интересных проблемах.
Если вы только начинаете экспериментировать с разработкой с помощью искусственного интеллекта, авторы советуют начать с малого: используйте искусственный интеллект для выполнения несвязанных, четко определенных задач, тщательно проверяйте каждую строчку создаваемого кода, а затем постепенно создавайте более крупные функции.
Поддерживайте модульность в процессе разработки: разбивайте все на небольшие, хорошо сфокусированные документы, поддерживайте четкие интерфейсы между компонентами и документируйте границы модулей.
Главное - доверять собственному опыту: ИИ используется для ускорения разработки, но он не может заменить вашу оценку; имейте смелость задавать вопросы, если что-то кажется неправильным; и всегда соблюдайте инженерные стандарты.
Появление агента
По мере приближения 2025 года ландшафт разработки с помощью ИИ кардинально меняется. В то время как существующие инструменты изменили способ создания прототипов и итераций, мы находимся в начале еще более важной трансформации: роста программной инженерии с использованием агентов ИИ. Агенты ИИ смогут не только отвечать на команды, но и планировать и выполнять решения с растущей степенью автономности.
например Антропология (используется в форме номинального выражения) Клод Иметь прямой доступ к компьютеру или Клайн Вы можете запустить браузер и выполнять тесты автоматически.
В процессе отладки ИИ-агент не только предлагает исправить ошибки, но и: проактивно выявляет потенциальные проблемы, запускает и выполняет тестовые пакеты, изучает элементы пользовательского интерфейса и делает скриншоты, предлагает и внедряет исправления, а также проверяет работоспособность решений.
Следующее поколение инструментов сможет легко интегрировать визуальное понимание (скриншоты пользовательского интерфейса, модели, диаграммы), вербальный языковой диалог и взаимодействие с окружающей средой (браузеры, терминалы, API).
ИИ будущего - это не замена разработчиков, а все более мощный партнер для совместной работы, который может брать на себя активные задачи, уважая при этом руководство и опыт человека.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...