AI Did Not Replace Debugging — It Changed It
Сейчас очень популярна идея о том, что AI скоро полностью заменит программистов. Но после нескольких часов реальной отладки проблемы в Next.js вместе с ChatGPT мне кажется, что реальность гораздо интереснее.
Это не была история в духе «AI всё решил автоматически».
Но и не история в духе «AI бесполезен».
На практике процесс выглядел скорее как совместная работа:
- программиста;
- AI-ассистента;
- традиционного поиска и документации.
И, что интересно, каждая из этих частей оказалась важной.
Проблема
Наше Next.js-приложение внезапно начало падать с ошибкой:
ReferenceError: boolean is not defined
Ошибка возникала в сгенерированных клиентских чанках Turbopack.
Не в нашем коде.
Не в TypeScript.
Не в React-компонентах.
Просто совершенно абсурдный runtime-сбой где-то глубоко внутри сгенерированных бандлов.
Поиск в Google почти не помогал:
- текст ошибки был слишком общим;
- stack trace указывал на трансформированные чанки;
- подходящих GitHub Issues с точно таким же симптомом не находилось.
Это как раз тот тип отладки, где традиционный поиск начинает давать сбой.
Где AI оказался особенно полезен
ChatGPT оказался неожиданно эффективен в том, чтобы:
- сужать круг гипотез;
- узнавать типичные паттерны экосистемы;
- определять вероятные проблемные области;
- связывать между собой симптомы, которые на первый взгляд не имели отношения друг к другу.
Например, он довольно быстро предположил, что проблема:
- скорее всего, не связана с браузерами;
- не связана с логикой нашего приложения;
- и, вероятно, находится где-то на пересечении Turbopack + ESM + markdown-инструментов.
Он также правильно указал на подозрительную цепочку зависимостей:
react-markdown
-> rehype
-> property-information
Это резко сузило пространство поиска.
Вместо того чтобы часами случайным образом менять код, мы смогли сосредоточиться на тестировании поведения бандлера.
Но одного AI оказалось недостаточно
При этом без разработчика процесс всё равно не сработал бы.
Нам пришлось:
- изучать сгенерированные чанки;
- проводить эксперименты;
- менять конфигурацию;
- сравнивать поведение Webpack и Turbopack;
- проверять предположения;
- постоянно тестировать гипотезы.
И что ещё важнее:
AI не всегда был прав.
В какой-то момент он уверенно предложил отключить Turbopack через параметры конфигурации Next.js, которых в нашей конфигурации вообще не существовало.
Из-за этого нам пришлось:
- перепроверять документацию;
- искать информацию вручную;
- продолжать эксперименты.
В итоге правильное решение мы нашли сами:
const app = next({
dev,
webpack: true,
})
Иронично, но именно эта ошибка AI хорошо показала реальную ценность такого workflow.
AI выступал не в роли оракула.
Скорее — в роли очень быстрого партнёра по рассуждению.
Какой паттерн из этого вырисовывается
Вся эта история ощущалась не как «AI заменяет программистов», а как появление новой модели отладки:
- AI помогает генерировать гипотезы и расставлять их по приоритету.
- Разработчик проверяет их экспериментально.
- Поисковые системы и документация дают опору на проверяемые факты.
- Вместе это значительно ускоряет решение проблемы.
По отдельности ни один из этих элементов не сработал бы так эффективно.
Без AI:
мы, скорее всего, гораздо дольше исследовали бы нерелевантные направления.
Без разработчика:
ошибочные предположения никто бы не исправил.
Без документации и поиска:
часть технических деталей так и осталась бы непроверенной.
Почему это важно
Многие сегодняшние дискуссии формулируют будущее так:
- люди против AI;
- или поиск против AI.
Но реальная инженерная работа всё чаще выглядит иначе:
- люди + AI + поиск/документация.
Каждый из этих элементов компенсирует слабости остальных.
AI хорошо рассуждает в условиях неполной информации.
Поисковые системы хорошо находят авторитетные источники.
Разработчики хорошо проводят эксперименты, понимают архитектуру и проверяют идеи реальностью.
Эта отладка стала хорошим напоминанием о том, что современная разработка всё меньше сводится к запоминанию ответов и всё больше — к умению эффективно ориентироваться в системе из рассуждений, проверки и экспериментов.
И, пожалуй, это куда интереснее, чем простая идея о том, что кого-то кто-то заменит.