За последние два года технологии искусственного интеллекта стремительно преобразили подход к написанию программного кода. Благодаря мощным языковым моделям и специализированным интегрированным средам разработки стало возможным не просто ускорить процесс программирования, но и радикально изменить сам стиль работы с кодом. Я хочу поделиться своим опытом двухлетнего использования AI в разработке и рассказать о тех уроках, которые я извлек, находясь на передовой изменений в профессии программиста. Моё знакомство с ИИ-программированием началось с простейших сценариев: генерации небольших фрагментов кода на основе запросов к чатботам. Подобный опыт был знаком многим, кто начинал знакомство с инструментами вроде ранних версий ChatGPT.
Но постепенно, по мере знакомства с более продвинутыми средами, мой workflow эволюционировал. Одним из самых впечатляющих открытий стало знакомство с Kiro — агентной IDE, разработанной в AWS, которая позволила по-новому взглянуть на возможности AI-инструментов в создании сложных проектов. Kiro не требует наличия AWS-аккаунта и обладает бесплатным тарифным планом, что делает его доступным для широкого круга разработчиков. Я участвовал в тестировании ранних сборок и предоставлял обратную связь, что позволило сделать продукт более зрелым и удобным к моменту публичного релиза. Использование Kiro дало уникальную возможность конструировать сложные проекты буквально построчно, не прибегая к традиционному ручному набору.
Например, я разработал игру Spirit of Kiro — бесконечный песочниц с компонентом крафта, полностью основанный на понимании лингвистической моделью реальных игровых и физических объектов. Из чего же выросла идея этой игры? Она соединила в себе множество вдохновений. Опыт с PartyRock, тестовым приложением, доказывал способность LLM диагностировать устройства и предлагать решения по их разбору и починке. История знаменитой аварии на Apollo 13, где инженеры создавали импровизированные решения из доступных материалов, стала стимулом представить, как ИИ моделирует состав и свойства вещей для свободной комбинации. И наконец, любовь к играм с крафтом — но такому крафту, который не ограничен жёсткими сценариями, а основан на логике и знаниях языковой модели, позволяющей комбинировать любые игровые предметы и получать уникальные результаты.
Мой подход к разработке всегда начинался с прототипирования. Использование ИИ позволило многократно экспериментировать с кодом на ранних этапах, быстро менять сценарии, просчитывать разные архитектурные варианты и подходы к реализации. Важно понимать, что эти предварительные наработки часто не включались в финальный релиз напрямую. Обычно написание производственного кода сопровождалось десятками тысяч строк прототипного кода, который служил для проверки идей и выявления ошибок. В отличие от классических разработчиков, для которых прототипы нередко превращались в постоянную основу проекта, работа с AI-дополнением позволяет быстро и безболезненно их отбрасывать, полностью переписывать и улучшать архитектуру буквально за несколько часов.
Гибкость в выборе языка программирования, базы данных, стека технологий — всё это стало реальностью. Быстрая итерация и непрерывное создание новых версий кода становится нормой, а не исключением. Однако работа с искусственным интеллектом так же требует понимания и системного подхода к разработке. Производительность и качество зависят не только от удобства самого инструмента или генерации кода, но и от дисциплины и культурных практик команды. Хорошо структурированный код, подробная документация, разбиение задач на мелкие промежуточные этапы — это фундамент, на котором ИИ со своими подсказками и автоматизацией превращается в мощный инструмент ассистирования.
Так, написание и поддержание микро-документов, или «steering files» в Kiro, помогает формировать контекст для запросов к модели, улучшая точность и соответствие кода техническому заданию. Разбейте сложные задачи на серию маленьких подзадач, которые будут понятны и искусственному интеллекту, и будьте готовы к частым коммитам и быстрому слиянию веток. Такой режим работы обеспечивает стабильный прогресс и позволяет легко откатиться при необходимости. Интересным аспектом является использование строго типизированных языков, таких как TypeScript. Несмотря на то, что определённые среда выполнения, например Bun, не проверяют типы по умолчанию, наличие типизации дает ИИ дополнительный контекст для понимания вызовов функций и структур данных.
Этот уровень строгости снижает количество ошибок и упрощает навигацию в коде. Не менее важна организация файлов. Совмещение HTML, CSS и JavaScript внутри одного файла — классический приём при работе с Vue.js — облегчает понимание и редактирование как для человека, так и для ИИ. Короткие и узконаправленные файлы с меньшим объемом кода способствуют высокой производительности и лучшему контролю.
Модульность и стремление к разделению ответственности позволяют избежать плотной связанности компонентов, что повышает стабильность и масштабируемость приложений. Архитектура с использованием событийной модели взаимодействия также значительно упрощает развитие проекта. Отказ от прямых вызовов в пользу событий, на которые подписываются различные части системы, уменьшает риски образования хрупкого монолита и способствует расширению возможностей. Ключевой проблемой при работе с большими кодовыми базами и AI является дублирование кода. В силу ограничений по объему контекстной информации, модель может не распознать уже существующие решения и попытаться переписать их заново.
Центральное хранилище, как Pinia store в моём проекте, которое выступает внутренним SDK, помогает избежать повторений и поддерживать консистентность. Тем не менее, несмотря на все технические достижения, человек в процессе разработки остаётся незаменимым элементом. AI-инструменты требуют постоянного контроля, понимания и критического отношения к сгенерированному коду. Учитесь задавать правильные вопросы, запрашивать несколько вариантов решения и анализировать их. Готовность признавать ошибки искусственного интеллекта и воспринимать их как возможности для собственного роста — необходимое качество современного разработчика.
В моей практике не раз возникала ситуация, когда неудачные ответы от ИИ указывали на пробелы в моих знаниях или на недостаточную точность формулировки задачи. В таких моментах важна активная позиция, исследовательский подход и стремление к глубокому пониманию темы — иначе совместная работа с ИИ превращается в слепое принятие решений. Параллельно с профессиональными аспектами я заметил влияние AI на собственное мышление и подход к обучению. Использование таких инструментов не способствует деградации умственных способностей, а наоборот — заставляет постоянно держать мозг в тонусе. Вопросы «почему?» и «как?» возникают гораздо чаще, поскольку необходимо разбираться не только с функционалом, но и с логикой, стоящей за генерацией кода.
Очень важно сохранять баланс между продуктивностью и заботой о собственном ментальном состоянии. Программирование с AI не снижает умственную нагрузку — он смещает фокус на решение более сложных и творческих задач, что требует регулярных перерывов и релаксации для усвоения нового материала и предотвращения выгорания. Кроме технических и когнитивных особенностей, организация работы и корпоративная культура играют огромную роль. Отношение к инструментам, мотивация, комфорт в коллективе — всё это отражается на итоговом качестве проектов. Без здоровой атмосферы и высокой командной морали даже самые продвинутые AI-технологии не приведут к выдающимся результатам.
Опыт работы с ИИ за последние два года вдохновил меня не только на создание новых проектов, но и на переосмысление самой роли разработчика. Теперь это сотрудничество с интеллектуальным партнёром, способным не просто выполнять прикладные задачи, а активно поддерживать и развивать креативные идеи. Сегодня я с воодушевлением смотрю в будущее, ведь ему еще предстоит множество невероятных проектов и открытий. Spirit of Kiro — лишь первая крупная работа, которая открывает путь к новым возможностям. Это приглашение для всех, кто хочет исследовать границы AI-инжиниринга: разрабатывайте, экспериментируйте, создавайте и совершенствуйтесь вместе с новыми технологиями.
Использование искусственного интеллекта меняет не только технологии, но и нас самих, помогая становиться лучше как разработчикам и как мыслителям. Именно этим я горжусь и именно этим опытом готов поделиться с вами.