Автор «Чистого Кода» и «Чистой Архитектуры» всегда славился консерватизмом.

С ноября 2025 по январь 2026 в своём X он начал документировать освоение AI coding. Я проанализировал его записи.

Ноябрь–декабрь 2025

Боб начал с grok-cli, он разрабатывает десктопную игру на Clojure с GUI-библиотекой Quil.

Первое впечатление: «идиот». Снимает рутину, но при этом, требует постоянного контроля. «Вы должны следить за ним, как ястреб», — писал Боб.

Показательный случай: Роберт использовал вектор [x y]. Grok решил, что правильно [y x] — потому что так чаще встречается в обучающих данных. AI молча расставил reverse по всему проекту. Когда он спросил зачем, модель начала ссылаться на «общепринятые конвенции».

Три дня ушло на разбор. Вывод Боба: AI пытается переписать вашу логику под среднее по больнице.

К концу этапа: инструмент полезен, но неряшлив. Путается в скобках Lisp и не чувствует архитектуру.

Январь 2026: переход на Claude

В январе Боб перешёл на Claude Opus 4.5. Разница в цене заметная:

  • Grok: ~$20/мес

  • Claude: ~$200+/мес при активной работе

Боб считает, что это окупается. Прирост продуктивности 20–30% для профессионала перекрывает стоимость.

У Боба тормозил рендеринг, он не знал где. Claude предложил добавить в код счётчики метрик. Боб запустил игру, собрал цифры, отправил обратно. На основе этих данных Claude нашёл узкое место и ускорил код на 90%.

Инсайт Боба: самый мощный режим работы — не «напиши мне функцию», а «помоги исследовать проблему».

Цикл: гипотеза AI → сбор данных человеком → анализ AI → решение.

Конец января

К концу месяца Боб запустил три параллельных Claude через Git Worktrees: планировщик (только анализ, менять запрещено), исполнитель (пишет код), ревьюер (оценивает результат).

«С одним агентом я ждал Claude. С двумя — ждал меньше. С тремя — Claude ждёт меня. Я стал узким местом. И узкое место — это планирование».

На следующий день Роберт Мартин попал в то, что назвал «петлёй близорукости» (myopia loop). Поведение игры сложное, каждый твик ломает что-то другое. Вся логика не помещается в контекстное окно — и они с Claude просто прыгают по кругу, чиня то, что раньше работало.

Боб попробовал две архитектуры. Первая: каждый юнит сам решает лучший ход — превратилось в кашу из противоречивых правил. Вторая: иерархические конечные автоматы (генерал → лейтенанты → юниты) — поначалу выглядело перспективно, но снова скатилось в хаос.

«Есть что-то бездушное в том, чтобы пялиться на окна Claude и надеяться, что на этот раз будет правильно».

Откатился до одного агента. Frustrating.

Решение — код 80-х. Уолтер Брайт написал аналогичную игру на C для VMS в 80-х. Боб скормил этот код Claude и попросил портировать логику.

Сработало. Когда Боб видел неправильное поведение — спрашивал «что делал VMS?». Claude отвечал. «Делай так». Claude делал.

«На порядок лучше, чем дни попыток заставить Claude придумать что-то разумное. Я дал ему чужой код».

Вывод: Claude может переводить C в Clojure маленькими инкрементами. Имплементировать чужую стратегию из ресурсо-ограниченной среды — это он умеет. Придумывать сложные алгоритмы с нуля — нет.

Отдельная боль: постоянно напоминать Claude о том, что обсуждали полчаса назад. Складывать всё в claude.md. Всё это — frustrating.


Главные выводы Мартина

  • Боб годами учил: мы больше читаем код, чем пишем, поэтому важнее читаемость, а не скорость написания. Ему задали вопрос: может AI инвертирует этот принцип? Может гипер-продуктивность — в эффективном управлении контекстными окнами?

    Роберт решил спросить Claude напрямую: помогает ли тебе, когда я заставляю рефакторить на мелкие функции? Ответ: да. Длинные функции и вложенные условия перегружают контекст модели так же, как и мозг человека. Понятные имена — меньше галлюцинаций.

    Вывод: принцип не инвертировался. Читаемость нужна и человеку, и машине.

  • Первые ~1000 строк можно расслабиться — AI генерирует быстро, всё работает, тесты кажутся лишними. Это даёт быстрый старт. Но как только сложность возрастает, модель начинает ломать старое при добавлении нового. Если пропустить этот момент — продуктивность падает почти до нуля.

    Мартин называет это «фазовым переходом»: критическая точка, когда нужно резко остановиться и покрыть всё тестами. Упустишь момент — дефицит тестов станет непреодолимым.

  • Дядюшка, который всю жизнь учил программистов дисциплине, неожиданно нашёл источник удовольствия. Есть рефакторинги необходимые, но ужасно скучные: выделить интерфейс из 50 методов, переименовать переменную в 100 файлах. Раньше программист мог оставить код грязным просто потому, что лень тратить два часа на механику.

    Теперь это занимает две минуты. «Я просто сижу и улыбаюсь», — пишет Боб. Психологическое сопротивление к рефакторингу исчезло. Цена чистоты упала до нуля — и код становится чище.

  • У AI нет инстинкта самосохранения. Если тест падает, Claude может войти в цикл: исправил → запустил → упало → добавил лог → запустил → упало. Сжигает токены и забивает контекст мусором. Инженер должен вовремя заметить и сделать git reset --hard.

Итог

AI усиливает то, что у вас уже есть. Если вы владеете TDD и SOLID — получите ускорение и избавитесь от скучной работы. Если рассчитываете, что AI сделает всё за вас — утонете.

Слова Боба: «Без присмотра AI будет нагромождать код поверх кода. У него нет чувства большой картины. Архитектура, вероятно, за пределами его возможностей».

Принципы Clean Code не устарели. В эпоху AI они стали обязательными. Сгенерировать бинарник можно мгновенно. Поддерживать этот код придётся вечно.

От автора

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

  • AI это рычаг

  • На AI нельзя делегировать процесс размышлений – это всё ещё остается на человеке

  • В AI coding важно использовать вспомогательные детерменированные инструменты – тесты, линтеры

Да, Claude модели сейчас одни из лучших, но вам, как "оператору над AI", всё ещё приходится дирижировать контекстом, чтобы модель не начала галлюцинировать.

Дяде Бобу я бы советовал попробовать codex cli с моделью GPT 5.* High – у неё сейчас лучший instructions following в индустрии, лучше всех держит контекст (отвечает на ~90% вопросов на контексте в 100K tokens и более), делает лучший context engineering за вас. Минус – модели GPT 5.* сильно аутистичные и не такие "вайбовые" как модели Claude. Без дополнительных промптов на стилистику ответа, из коробки, GPT модели ощущаются очень сухими, не умеющими общаться – всё только по делу. При этом, с моделями Claude приятнее общаться – они стараются добавить больше "жизни" в свои сообщения.

Если вам интересно узнать больше про профессиональный подход к AI coding, подписывайтесь на мой Telegram канал, Тимур Хахалев про AI Coding!

Комментарии (15)


  1. Sigest
    30.01.2026 13:56

    Я не дядюшка Боб, но пришел к таким же заключениям. Первые 1000 строк кода - хорошо. Дальше начинается безумие. Пишет новое - ломает старое. Чинит старое - ломает новое. ИИ хорош, если вот совсем не знаешь сферы работы(в моем случае Ангулар) и за не имением других вариантов, то приходится юзать ИИ, но я представляю какой говнокод на выходе получается (оценить не могу ибо почти ноль в Ангуларе).

    На беке предпочитаю все же сам делать проект, только небольшие точечные задачи прошу написать. Ну и тесты полностью отдал ИИ. Хотя с одной стороны все равно нужно тщательно проверять, но с другой он часто добавляет edge кейсы в тестах о которых я сам не подумал, что безусловно огромный плюс.

    Еще я сделал такой вывод, уже на уровне человеческой физиологии. Либо ты полностью пишешь код, и ограниченно просишь помощь у ИИ. Либо ты полностью отдаешь написание кода ИИ. Работа в режиме 50/50 плохая. Потому что когда ты говоришь условно "напиши мне такой-то сервис". Он напишет, ты проверишь, поправишь, но это уже "не твой сервис, не твой код". Ты вне контекста этого сервиса. Ты очень быстро про него забудешь, а дальше по проекту будешь упорно вспоминать, где же эта бизнес-логика реализована. Когда ты сам пишешь код, то в голове это крепко откладывается и ты знаешь, что где у тебя лежит


    1. WhiteBehemoth
      30.01.2026 13:56

      Первые 1000 строк кода - хорошо. Дальше начинается безумие. Пишет новое - ломает старое. Чинит старое - ломает новое.

      Как органичный вывод из этого, я вместо правок меняю исходные требования и делаю проект с нуля. 3-4 попытки дают что-то близкое к тому, что я хочу.

      (уточню, что пробовал только небольшие проекты)

      Еще я сделал такой вывод, уже на уровне человеческой физиологии. Либо ты полностью пишешь код, и ограниченно просишь помощь у ИИ. Либо ты полностью отдаешь написание кода ИИ. Работа в режиме 50/50 плохая. Потому что когда ты говоришь условно "напиши мне такой-то сервис". Он напишет, ты проверишь, поправишь, но это уже "не твой сервис, не твой код". Ты вне контекста этого сервиса.

      тоже соглашусь и добавлю, что всё написанное прошу объяснять. А так же задаю "свои стандарты" - "безопасный код", бесконечные try/catch со стратегией на выживание на этапе разработки ужасно засоряют код и мешают пониманию логики (ну мне по крайней мере)


  1. dimonier
    30.01.2026 13:56

    Как будто читаю мои наблюдения от вайб-кодинга, если бы я их задокументировал ;-)

    В самом деле, если делаешь что-то новое, чего нет в паттернах обучающих данных, или просто по новой логике, чуждой LLM (поменял местами X и Y), то начинается лютая дичь, с которой сложно справляться. По крайней мере, раньше так было.


    1. iroln
      30.01.2026 13:56

      раньше так было

      И сейчас ничего не изменилось. Они неспособны действовать за пределами обучающих данных. Нет в данных - начинается бредо-генерация, потому что состояние "я не знаю решения" оно не способно породить. Хоть они и стараются научить модели говорить "я не знаю", пока плохо получается.


  1. Dhwtj
    30.01.2026 13:56

    Первые ~1000 строк можно расслабиться — AI генерирует быстро, всё работает, тесты кажутся лишними. Это даёт быстрый старт. Но как только сложность возрастает, модель начинает ломать старое при добавлении нового. Если пропустить этот момент — продуктивность падает почти до нуля.

    Мартин называет это «фазовым переходом»: критическая точка, когда нужно резко остановиться и покрыть всё тестами. Упустишь момент — дефицит тестов станет непреодолимым.

    Не тестами, а контрактами между хорошо изолированными модулями. Тест это один из вариантов проверки контракта, но лучше описать контракт в типах.


  1. octoMax
    30.01.2026 13:56

    "GPT модели ощущаются очень сухими, не умеющими общаться – всё только по делу." так это же отлично!


    1. Dhwtj
      30.01.2026 13:56

      А поговорить? ©


  1. iroln
    30.01.2026 13:56

    GPT модели ощущаются очень сухими, не умеющими общаться – всё только по делу. При этом, с моделями Claude приятнее общаться – они стараются добавить больше "жизни" в свои сообщения.

    По моему это наоборот хорошо. Нафиг не нужны все эти "софт-скиллы".
    Самая отвратительная модель по личному не очень богатому опыту - это Gemini. Вот это жополизство и льстивость просто высшего уровня. Все эти "Ты абсолютно прав" и "этот код высшего качества" - это про неё. При том пользы значительно меньше чем от GPT, которая обходится без всего этого тошнотворного восхищения твоим кодом и умственными способностями.


    1. udattsk
      30.01.2026 13:56

      "Это гениально!" ещё ))


    1. Sigest
      30.01.2026 13:56

      ЧатЖПТ тоже любит тошновторно лизоблюдить. Просишь его "отвечай только по делу, от себя эмоциональные оценки не давай" и он начинает уже нормально отвечать. Но в каждом новом диалоге все возвращается.


      1. iroln
        30.01.2026 13:56

        Я скорее про codex, видимо там системный промпт такой, что лизоблюдство убрано (я не смотрел глубоко, очень мало пользуюсь). В то же время в gemini-cli это просто невыносимо, возможно, что тоже из-за системного промпта.


  1. alcanoid
    30.01.2026 13:56

    Где-то уже видел шутку относительно того, что следующий бестселлер дяди Боба будет называться «Clean Claude».


  1. tkutru
    30.01.2026 13:56

    Прирост продуктивности 20–30% для профессионала перекрывает стоимость.

    Осталось понять, как они эту "продуктивность" считали...


  1. Gold141
    30.01.2026 13:56

    У меня негативный опыт работы с gpt 5.2 codex. Инструкции не соблюдает вообще. Мы потом посчитали - 7 раз ему прямо говорил проводи тесты самостоятельно, без моего напоминания, не останавливайся пока не выполнить задачу полностью, каждый раз он извинялся и говорил что больше так не будет, через 2 ответа снова за старое.. вместо ответов на вопрос брался за ненужное исправление кода.


    1. timurkhakhalev Автор
      30.01.2026 13:56

      А вы им точно в codex cli пользовались?