«Чистый код больше не нужен, нейронка всё равно поймёт» 🤡

«Чистый код больше не нужен, нейронка всё равно поймёт» 🤡

Слышали эту мантру от ИИ-визионеров? Зачем париться с архитектурой, неймингом и рефакторингом, если вкинул в Claude или ChatGPT весь репозиторий, и агент сам найдет, где поправить баг?

Вышло исследование от SonarSource, в котором заморочились с методологией и пришли к интересным выводам. Они собрали пары репозиториев. Одна версия — вылизанная, с факторизованными хелперами и без нарушений статанализатора. Вторая — семантически и поведенчески абсолютно идентичная (тесты проходят), но структурно засранная (God-объекты, глубокая вложенность, лапша). Натравили на обе версии автономного агента Claude Code (модель Sonnet 4.6) на 660 итерациях.


И вот что выяснилось 📊

1️⃣ Плохая новость для пуристов.

Нейронке действительно плевать на качество кода с точки зрения конечного результата. Pass rate (процент успешно решенных задач) на чистом и грязном коде одинаковый. Разница меньше 1 процентного пункта. Агент справляется и там, и там.

2️⃣ Хорошая новость для бизнеса.

Говнокод теперь имеет прямую финансовую стоимость. На грязном коде агент сжигает на 7-8% больше токенов.

3️⃣ Метрика «тупняка».

Самый сильный эффект — в навигации. На чистом коде агент на 34% реже совершает «revisitations». Это ситуация, когда нейронка читает файл, пытается что-то сделать, понимает, что ни черта не поняла в этом спагетти-коде, и возвращается перечитывать его снова. В чистом коде агент просто находит нужный кусок, правит его и идет дальше.


Есть забавный нюанс с «God-объектами» (гигантскими методами на сотни строк с кучей ветвлений). Если разбить такой кусок на 10 маленьких хелперов, токенов агент потратит примерно столько же, потому что ему придется сканировать больше мелких файлов. Но зато он делает это гораздо увереннее, используя grep по понятным названиям, вместо того, чтобы вчитываться в бесконечный switch. А вот если задача затрагивает несколько модулей сразу — чистый код рвет грязный в клочья, драматически экономя окно контекста.


Классические паттерны поддерживаемости никуда не ушли. Разница лишь в том, что раньше они берегли выгорающих джунов и мидлов, а теперь они экономят вычислительные ресурсы, API-косты и снижают время ожидание при работе ИИ-агентов.

Жду, когда в вакансиях начнут писать: «Требуется умение писать чистый код, чтобы не разорять компанию на токенах» 🌝

Бесплатный
Комментарии
avatar
Здесь будут комментарии к публикации