Рефакторинг наконец-то можно продать менеджеру. Аргумент считается в токенах.
Сначала про то, что все чувствуют, но плохо умеют назвать словами.
На запущенном проекте агент каждый раз затаскивает в контекст пол-репозитория — просто чтобы понять, куда вносить правку. Чем больше он затащил, тем хуже держит детали: начинает путать соседние сущности, придумывать функции, которых нет, терять половину ваших правил. Команда это переживает как «модель на нашем проекте тупее, чем у людей в демках». А это не модель. Это цена вашей архитектуры, которую теперь платит каждый ход.
И вот появился замер.
У инженера из Thoughtworks приложение на 150 тысяч строк, написанное агентами почти без чтения кода человеком. Слой доступа к данным разросся до 17 155 строк в одном файле. Он взял одно и то же изменение и прогонял его свежим сабагентом после каждого из пятнадцати шагов рефакторинга. Мерил не красоту кода, а сколько входных токенов нужно, чтобы это изменение сделать.
Было 159 564 токена. Стало 27 360. Минус 83%.
Ключевая деталь: суммарный объём кода почти не изменился — слой так и остался около 16,5 тысяч строк. Экономия не от того, что кода стало меньше. От того, что агенту теперь нужно прочитать меньше файлов, чтобы понять, куда править.
Почему это важно именно в разговоре с менеджером.
Раньше защита техдолга звучала так: «станет чище, будет проще поддерживать». Против конкретной фичи с конкретной датой этот аргумент проигрывает всегда, и справедливо — он неизмерим.
Теперь у него два измеримых следствия, и оба на языке, который понимают за пределами разработки. Первое: каждая будущая задача в этом модуле будет стоить в шесть раз дешевле по токенам. Второе, и оно важнее денег: агент, которому не нужно тащить в контекст пол-проекта, реже ошибается. Меньше материала в голове — меньше выдуманных функций и потерянных требований.
Второе косвенно подтверждается со стороны. В свежем бенчмарке про то, соблюдают ли агенты обязательные правила, один из четырёх типовых способов провала звучит именно так: теряют детали правил на длинном контексте.
Так что рефакторинг больше не про эстетику. Это работа с тем, сколько ваша команда — живая и машинная — вынуждена удерживать в голове за раз.
Честности ради: автор пишет, что сам Claude рефакторил так себе. Механическую часть делал питон-скриптами на grep и sed, путался в отступах, а самый ценный шаг пропустил с первого раза. Весь эксперимент занял около восьми часов почти без присмотра.
https://martinfowler.com/articles/exploring-gen-ai/refactoring-economic-benefit.html
Какой файл в вашем проекте агент вынужден читать целиком каждый раз?
Post #760
329