Программирование как построение теории: почему ИИ-агенты усложняют понимание кода

Программирование как построение теории: почему ИИ-агенты усложняют понимание кода

В индустрии эффективность программиста часто оценивают по скорости написания кода или количеству закрытых задач. С появлением ИИ-агентов эти метрики выросли, но возникла новая проблема: код пишется быстрее, а понимание системы у разработчиков падает. В статье рассматривается, как концепция Питера Наура «программирование как построение теории» помогает понять риски использования LLM в разработке.

Код — только верхушка айсберга

В 1985 году Питер Наур предложил радикальную идею: программирование — это не создание текста, а формирование ментальной модели системы. Эта теория в голове разработчика включает:

  • Понимание связей между частями системы.
  • Знание причин выбора тех или иных решений и отказа от альтернатив.
  • Способность предсказать последствия изменений в коде.

По мнению Наура, если команда покидает проект, теория исчезает. Остается только код — «мертвый» артефакт. Новые разработчики могут его читать, но без внутренней модели их правки постепенно разрушают архитектурную целостность.

ИИ-агенты и разрыв ментальной модели

Современные ИИ-агенты работают на основе статистического предсказания следующего токена. Они не строят теорию. Когда разработчик делегирует задачу агенту, он пропускает ключевой этап — формирование понимания.

Процесс выглядит так:

  1. Разработчик описывает задачу.
  2. Агент генерирует код, который проходит тесты.
  3. Разработчик делает быстрое ревью и сливает изменения.

Но в голове у разработчика не формируется понимание, почему код работает именно так. Исчезает процесс борьбы с проблемой, который обычно заставляет вникать в детали. В результате кодовая база растёт, а ментальная модель остаётся неизменной или деградирует.

Ограничения и риски автоматизации

Использование ИИ создаёт эффект заимствованного понимания. Он работает, пока агент справляется с задачами. Но при возникновении сложной проблемы, которую ИИ не может решить, разработчик оказывается беспомощен.

Агенты часто предлагают локально корректные, но архитектурно чуждые решения. Без глубокой теории в голове разработчик может не заметить противоречия. Снаружи система работает, но внутри — фрагментированная логика, несогласованные подходы.

Отладка сгенерированного кода сложнее: нужно сначала восстановить чужую логику, что занимает больше времени, чем написание кода с нуля. Высокая скорость закрытия задач создаёт ложное ощущение контроля. Разработчик становится зависимым от инструмента, не понимая основ.

Когда ИИ-агенты действительно полезны

Проблема не в ИИ, а в способе его применения. Инструменты оправданы там, где построение теории минимально:

  • Написание простых DTO, мапперов, базовых CRUD-операций с очевидной логикой.
  • Генерация тестов, особенно для покрытия краевых случаев в уже понятном коде.
  • Быстрое напоминание синтаксиса или работы методов библиотек.

Микро-анализ: компромисс между скоростью и знанием

Бизнесу выгодна скорость. Но технический долг, вызванный непониманием системы, проявляется позже — при масштабировании или смене команды.

Разработчики сталкиваются с выбором:

  • Использовать ИИ «бездумно» — получить прирост скорости, но потерять контроль через несколько месяцев.
  • Использовать ИИ как помощника — перепроверять каждое решение и интегрировать его в свою ментальную модель. Этот путь медленнее, но сохраняет теорию программы.

Практический итог

Программирование — это в первую очередь когнитивная деятельность. Если инструмент устраняет необходимость думать и анализировать структуру, он лишает вас понимания продукта.

Используйте агентов для ускорения рутины. Критическую логику и архитектурные решения лучше прорабатывать вручную.

Читать оригинал