ИИ пока бесполезен в дебаге сложных систем

14 февраля 2025 г.

ИИ пока бесполезен в дебаге сложных систем. Сейчас очень редко приложения содержатся сами в себе.

То же приложение для подкастов (наше) помимо кода на Flutter использует Firebase, Google Cloud Storage и разные дополнительные сервисы. Плюс подкасты грузятся с тысяч разных хостов.

На бэкенде помимо непосредственно кода есть инфраструктура для мониторинга, data warehouse, дашборды, ci/cd в Tramline, интеграция со слаком, биллинг в RevenueCat. Конфигурация всех этих систем - несколько строчек кода тут и там. Но никогда с первого раза ничего не работает, потому что софт flaky. Всегда есть какие-то уникальные вещи, из-за которых что-то не работает с первого раза или ломается во время использования. Неаккуратный апдейт со стороны эппл, флаттер перестает компилироваться, на время нужно поставить костыли, потом их убрать...

Вот это — и есть software engineering. Писать код — лишь малая часть того, что делают разработчики.

ChatGPT умеет неплохо искать информацию и обучать. Но ИИ пока не работает со всей системой в целом. Там добавляются распределенные системы, доступ к своим системам к и к системам третьих сторон, ключи, сертификаты, комплайенс и т.п. У разного рода банков уйдут десятилетия прежде чем они пустят козла в огород своих систем.

Это проблема другого порядка. Её решат, но слишком оптимистично думать, что ИИ уже бежит заменять разработчиков. ИИ только начинает касаться верхушки айсберга.


Сегодня столкнулся с такой ситуацией.

Наш вебапп metacast.app не захотел деплоиться на Vercel после последних изменений. Изменения были тривиальные.

Проблему сообщили логи на Vercel — слишком большой размер функции. Нужно 250 мб, а у нас аж под 700. Самый большой файл — кэш webpack. Это мы вообще руками не трогаем, идёт в комплекте с Next.js, работает само.

Почему такой большой размер файла ChatGPT сказать не смог, но предложил пару методов диагностики. В итоге чатжпт был полезен как механизм поиска. Я спросил его как симулировать продакшен билд локально и он дал мне команду.

А потом я начал идти по своему коду и проверять гипотезы, удаляя то, что мне казалось подозрительным. Не забывал каждый раз чистить кэш, как советовал чатжпт. Нашел в итоге очень безобидную вещь, которая вызывала проблему (функция parse из библиотеки html-react-parser).

В интернете про такой кейс ничего не нашел. Когда рассказал о своих находках чату, он сказал, что типа да так бывает, side effects, все дела.

Как по мне это ещё простой кейс. Мы не коснулись проблем с доступом, файрволами, воркфлоу из serverless функций и такого прочего из мира бэкендов.

Я пока не убеждён, что ииграммисты могут создать и поддерживать что-то более менее сложное, только полагаясь на нейросети.


UPD: 19 февраля 2025

Я продолбался с этой проблемой пол-пятницы, вторник до 2:30 ночи и половину среды. Плюс думал нон-стоп о ней во время выходных.

Проблема оказалась не в том, что я написал изначально. Путем дедукции, совместно с ChatGPT, я всё-таки разобрался и пофиксил её. Проблема была в одной строчке кода, из-за которой webpack сходил с ума и начинал упаковывать в serverless функцию все файлы без разбора.

Но вот что меня порадовало и поразило больше всего.

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

Я предполагаю, что ChatGPT сам смог бы найти эту проблему, если бы я ему закинул весь релевантный код и логи. Может быть, он и не догадался бы сам на этом этапе развития, но это — вопрос времени. Такие вещи он сможет решать. Сможет их когда-нибудь решать и Co-pilot и Cursor, когда у них будет доступ ко всей системе в целом.

Я впервые ощутил супер-силу, которую даёт AI. Без него я бы, скорее всего, побился головой об стенку ещё денёк.

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