Мой блог
Зачем программисту архитектура, если ИИ-агенты справляются со сложностью?
Я работаю в сфере программирования уже достаточно давно: первые шаги делал еще в школе, создавая простые игры для микрокомпьютеров БК, а последние годы занимаюсь коммерческой разработкой на Python. Имея за плечами солидный инженерный опыт, я привык смотреть на создание ПО через призму проектирования архитектуры, масштабируемости и сдерживания системной сложности.
До недавнего времени мой опыт взаимодействия с нейросетями ограничивался использованием веб-версии Gemini в браузере. Модель радовала высокой скоростью и интерактивностью при обычном диалоге, но с написанием рабочего кода справлялась посредственно. Чтобы получить корректный сниппет, приходилось регулярно корректировать запросы и применять эмоциональные выражения, на которые Gemini, к слову, реагировал весьма охотно. Однако было понятно, что для реальной инженерной практики нужны специализированные инструменты — автономные кодинг-агенты.
Переход на новые инструменты в нашей команде произошел директивно: руководство волевым решением внедрило концепцию «вайб-кодинга», а также вайб-планирование и автоматическую формулировку задач в Jira. Процессы перестроили без предварительных опросов и выяснения мнения разработчиков, просто поставив всех перед фактом.
Практическое знакомство с Cursor и разбор реального бага
Первоначально я отнесся к нововведению со здоровым скепсисом, характерным для опытных специалистов. Тем не менее Cursor оказался сбалансированным и понятным инструментом, а настройка и оплата доступа не вызвали проблем. Я начал осваивать редактор, успешно закрыл с его помощью пару небольших задач и подготовил рабочее окружение.
Серьезная проверка возможностей кодинг-агента состоялась при поиске сложного плавающего бага. Описание проблемы от тестировщиков выглядело размыто: список элементов на стороне фронтенда грузится до определенного момента, после чего бэкенд начинает отдавать 500-е ошибки. Доступа к серверным логам у меня на тот момент не было.
Архитектура бэкенда строилась на FastAPI и MongoDB с самописным связующим слоем наподобие легкого ODM с декларативным описанием коллекций и операторами $lookup (аналогами JOIN в реляционных БД). Я решил передать Cursor описание симптомов в исходном виде, не снабжая его дополнительными данными.
Результат меня приятно удивил. Нейросеть проанализировала структуру проекта и точно определила, что операция проекции полей ($project) выполнялась уже после этапов $lookup и $match. Из-за этого выборка документов в MongoDB переполняла выделенную оперативную память, приводя к аварийному завершению работы СУБД с ошибкой Sort exceeded memory limit. ИИ фактически спрогнозировал точный текст исключения, что позже на 100% подтвердилось при получении логов. Без помощи кодинг-агента на самостоятельный локализацию этой проблемы у меня ушло бы от нескольких часов до пары дней работы.
Изменение процессов: от проектирования к генерации
Этот пример наглядно демонстрирует, что современные ИИ-инструменты стали зрелым технологическим стеком, трансформирующим индустрию. Однако характер происходящих изменений вызывает обоснованные опасения.
Широкое распространение кодинг-агентов снижает порог входа в IT практически до нуля. Обширный класс стандартных задач, требовавших ранее привлечения квалифицированных инженеров, коммуникации и управления рисками, теперь закрывается базовыми сотрудниками или менеджментом. На примере собственного проекта я наблюдаю замену привычной инженерии новым циклом генерации кода:
- Отказ от предварительного анализа: этап проектирования архитектуры и декомпозиции задач уступает место прямому промптингу в нейросеть;
- Автоматическая декомпозиция: ИИ формирует план реализации без глубокого учета системных связей;
- Сгенерированное тестирование: тесты пишутся тем же агентом, обеспечивая 100% формального покрытия, хотя проверить реальное качество проверок становится затруднительно;
- Переход к слепому доверию: если вначале специалист контролирует каждый pull request и отсекает сомнительные паттерны, то со временем возникает привыкание к тому, что сгенерированный код работает, и контроль ослабевает.
При этом итоговый продукт действительно выполняет свои функции. Однако за внешней работоспособностью кроется фундаментальный сдвиг в самой сути разработки ПО.
Исчезновение необходимости бороться со сложностью
Исторически ключевая роль программиста заключалась в борьбе со сложностью систем и снижении ее до уровня предметной области. Эволюция от ассемблера к C и Паскалю, а затем к Python, Go и Rust происходила именно ради создания более высоких уровней абстракции. Фреймворки, библиотеки и ORM разрабатывались людьми для людей — чтобы обеспечить читаемость кода, статическую проверку типов, подсказки в IDE и уверенность в поддержке проекта.
Кодинг-агенту все эти абстракции не нужны. ИИ без колебаний напишет сырые SQL-запросы без ORM или поднимет веб-сервер на голых сокетах, если ему ограничить использование сторонних модулей. Задача решить проблему изящно сменяется решением задачи методом грубой силы.
Принципы SOLID, KISS, SRP, гексагональная архитектура и микросервисы были придуманы с одной целью: позволить человеческому мозгу удерживать в памяти структуру системы и комфортно работать с кодом спустя долгое время. Нейросетевому агенту всё равно, построен ли проект на изящных паттернах или представляет собой монолитный связный код, пока система выдает требуемый результат.
Большие языковые модели стали новым универсальным уровнем абстракции, скрывающим под собой детали нижележащих слоев. Внутренняя сложность системы никуда не исчезла, но человеку больше не обязательно ее понимать, если её понимает нейросеть. В результате традиционные сеньорские и архитектурные навыки теряют прежнюю ценность, а специалисты рискуют превратиться в аналог низкоуровневых оптимизаторов, разбирающих ассемблерный листинг компилятора ради сбережения нескольких тактов.
Мощный ИИ агент в 16гб VRAM
В связи с быстрым развитием ИИ-инструментов актуальным становится вопрос локального запуска моделей. Существует распространенное мнение, что полноценные ИИ-агенты требуют профессионального оборудования уровня RTX 3090, RTX 4090 или ускорителей с объемом видеопамяти от 24 ГБ, а системы с 16 ГБ VRAM не способны справиться с серьезными задачами.
После обновления видеокарты до модели RTX 5060 Ti с 16 ГБ VRAM я провел серию тестов по развертыванию локальных нейросетей. Практика показала, что при использовании актуальных методов квантования и грамотной настройке контекста объема в 16 ГБ видеопамяти вполне достаточно для запуска эффективных локальных кодинг-агентов, способных брать на себя повседневные задачи разработки без отправки кода во внешние облачные сервисы.
Источник: habr.com
