AI-код — это кредит, а не подарок. Узнайте, как не попасть в ловушку непонимания и научиться платить долг осознанно. Читайте сейчас!
В прошлом месяце в моём личном проекте появился баг. Ничего драматичного — значение не обновлялось так, как должно было. Я открыл файл, прочитал его сверху донизу и понял, что понятия не имею, на что смотрю. Не потому, что код был плохим. Он был чистым, хорошо организованным, делал именно то, что я просил. Проблема в том, что я никогда не строил ментальную модель того, почему он работает именно так. Я генерировал его, просматривал и шёл дальше — десятки раз, ни разу не задержавшись достаточно, чтобы понять. Я не мог исправить баг в собственном проекте, потому что никогда по-настоящему не владел кодом, который исправлял. Именно тогда я начал думать об AI-сгенерированном коде иначе: не как о подарке, а как о кредите.
Вот ментальная модель, которую я хотел бы иметь раньше. Каждый раз, когда AI генерирует для вас код, он не даёт вам что-то бесплатно. Он даёт это в кредит. Код работает сегодня. Понимание — часть, которая позволяет вам отлаживать, расширять, объяснять его другим, — это проценты, и они подлежат оплате, независимо от того, запланировали вы их или нет.
| AI генерирует | Вы должны |
|---|---|
| 10 строк | Несколько минут чтения |
| 100 строк | Реальное понимание структуры |
| 200+ строк в рамках фичи | Сессия отладки — хотите вы того или нет |
Долг не проявляется сразу. В этом его опасность. Он проявляется позже — в виде бага, который вы не можете диагностировать, комментария к PR, на который не можете ответить, фичи, которую боитесь трогать, потому что не уверены, что от неё зависит. Я брал этот кредит неделями, не осознавая этого. Баг был просто первым счетом, который пришёл к оплате.
Позже я поискал информацию, наполовину ожидая, что просто параноик. Я не был. Недавние исследования AI-ассистированных коммитов показывают значительно более высокий уровень проблем с корректностью и безопасностью по сравнению с человеческим кодом — проблемы, которые не проявляются, пока кто-то не выполнит код, который никогда не был полностью понят человеком, его выпустившим. Также растёт количество опросов разработчиков, указывающих на менее техническую и более личную связь: более сильная зависимость от AI-инструментов коррелирует с более высоким уровнем выгорания. Это совпадает с тем, что я чувствовал тем вечером, когда эйфория от продуктивности прошла — не облегчение, а низкоуровневая тревога о кодовой базе, которую я больше не мог полностью контролировать. Всё это не означает, что AI-ассистированное программирование — это плохо. Это означает, что долг реален, даже когда он невидим, и притворство не заставит его исчезнуть.
Я хочу быть честным, потому что легко превратить это в более громкую историю, чем она была. Я не удалил всё и не начал заново. Я не отказывался от AI-инструментов. Это было бы своим собственным перегибом. Что я сделал на самом деле — медленнее и менее удовлетворяюще для описания: я прошёлся по файлу, раздел за разделом, и заставил себя понять его должным образом. Не просмотреть — реально проследить, что делает каждая часть и почему, так же, как если бы коллега написал код и уволился. Это заняло больше времени, чем исправление бага в коде, который я написал сам. В этом и была суть. Время, которое я «сэкономил», генерируя код, не исчезло — оно просто было отложено до момента, который я не выбирал. Баг выбрал его за меня. Как только я действительно понял код, исправление заняло около десяти минут.
То, что застряло со мной с тех пор, — не драматическое правило. Это маленькая, скучная привычка: прежде чем перейти к чему-то, что сгенерировал AI, я задаю себе один честный вопрос: «Могу ли я объяснить это кому-то другому прямо сейчас, не глядя на код снова?» Если ответ «нет», я не считаю задачу выполненной. Я читаю снова. Я прослеживаю логику. Иногда я переписываю небольшие куски, чтобы понимание действительно закрепилось, а не пассивно прошло мимо. Моё правило: прежде чем перейти к чему-то, что сгенерировал AI, спроси себя: «Могу ли я объяснить это кому-то другому прямо сейчас, не глядя на код снова?» Если ответ «нет», задача не выполнена. Это медленнее в моменте. Это единственное, что действительно предотвращает накопление долга незаметно. Я всё ещё постоянно использую AI. Я не заинтересован притворяться иначе, и я не думаю, что ответ — использовать его меньше. Ответ для меня — перестать считать «оно работает» финишной чертой и начать считать «я понимаю это» настоящей целью.
Я не собираюсь заканчивать драматичным заявлением о том, у кого будет работа через пять лет. Я этого не знаю. Что я знаю из одного бага в одном личном проекте: код, который AI пишет для вас, не бесплатен только потому, что вы не набирали его сами. Когда-нибудь что-то попросит вас отчитаться за него — баг, вопрос, момент, когда вам нужно изменить его и вы понимаете, что не уверены, что именно меняете. Вы можете заплатить этот долг рано, понемногу, понимая, что вы выпускаете. Или вы можете заплатить всё сразу, в 11 вечера, глядя на баг в собственном проекте и задаваясь вопросом, как вы туда попали. Я рекомендую первый вариант. Я узнал это трудным путём.
Был ли у вас такой момент, когда AI-сгенерированный код, который вы выпустили, оказался долгом, о котором вы не знали? Мне искренне интересно узнать, как вы это заметили и что сделали после. 👇
Хочешь закрепить знания на практике?
Решай задачи на Algolit — интерактивная платформа для обучения
Начать бесплатно →