В индустрии эффективность программиста часто оценивают по скорости написания кода или количеству закрытых задач. С появлением ИИ-агентов эти метрики выросли, но возникла новая проблема: код пишется быстрее, а понимание системы у разработчиков падает. В статье рассматривается, как концепция Питера Наура «программирование как построение теории» помогает понять риски использования LLM в разработке.
Код — только верхушка айсберга
В 1985 году Питер Наур предложил радикальную идею: программирование — это не создание текста, а формирование ментальной модели системы. Эта теория в голове разработчика включает:
- Понимание связей между частями системы.
- Знание причин выбора тех или иных решений и отказа от альтернатив.
- Способность предсказать последствия изменений в коде.
По мнению Наура, если команда покидает проект, теория исчезает. Остается только код — «мертвый» артефакт. Новые разработчики могут его читать, но без внутренней модели их правки постепенно разрушают архитектурную целостность.
ИИ-агенты и разрыв ментальной модели
Современные ИИ-агенты работают на основе статистического предсказания следующего токена. Они не строят теорию. Когда разработчик делегирует задачу агенту, он пропускает ключевой этап — формирование понимания.
Процесс выглядит так:
- Разработчик описывает задачу.
- Агент генерирует код, который проходит тесты.
- Разработчик делает быстрое ревью и сливает изменения.
Но в голове у разработчика не формируется понимание, почему код работает именно так. Исчезает процесс борьбы с проблемой, который обычно заставляет вникать в детали. В результате кодовая база растёт, а ментальная модель остаётся неизменной или деградирует.
Ограничения и риски автоматизации
Использование ИИ создаёт эффект заимствованного понимания. Он работает, пока агент справляется с задачами. Но при возникновении сложной проблемы, которую ИИ не может решить, разработчик оказывается беспомощен.
Агенты часто предлагают локально корректные, но архитектурно чуждые решения. Без глубокой теории в голове разработчик может не заметить противоречия. Снаружи система работает, но внутри — фрагментированная логика, несогласованные подходы.
Отладка сгенерированного кода сложнее: нужно сначала восстановить чужую логику, что занимает больше времени, чем написание кода с нуля. Высокая скорость закрытия задач создаёт ложное ощущение контроля. Разработчик становится зависимым от инструмента, не понимая основ.
Когда ИИ-агенты действительно полезны
Проблема не в ИИ, а в способе его применения. Инструменты оправданы там, где построение теории минимально:
- Написание простых DTO, мапперов, базовых CRUD-операций с очевидной логикой.
- Генерация тестов, особенно для покрытия краевых случаев в уже понятном коде.
- Быстрое напоминание синтаксиса или работы методов библиотек.
Микро-анализ: компромисс между скоростью и знанием
Бизнесу выгодна скорость. Но технический долг, вызванный непониманием системы, проявляется позже — при масштабировании или смене команды.
Разработчики сталкиваются с выбором:
- Использовать ИИ «бездумно» — получить прирост скорости, но потерять контроль через несколько месяцев.
- Использовать ИИ как помощника — перепроверять каждое решение и интегрировать его в свою ментальную модель. Этот путь медленнее, но сохраняет теорию программы.
Практический итог
Программирование — это в первую очередь когнитивная деятельность. Если инструмент устраняет необходимость думать и анализировать структуру, он лишает вас понимания продукта.
Используйте агентов для ускорения рутины. Критическую логику и архитектурные решения лучше прорабатывать вручную.