Что такое технический долг — и почему с ИИ он копится быстрее

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





