Пост «I’m going back to writing code by hand», опубликованный на Hacker News, набрал 1038 баллов и 617 комментариев, став одним из самых обсуждаемых материалов о последствиях активного использования ИИ в разработке. Автор проекта k10s — TUI-дашборда для Kubernetes-кластеров с GPU — в течение семи месяцев почти полностью полагался на Claude в режиме вайб-кодинга. По его словам, первые недели принесли эйфорию: фичи добавлялись за пару сессий, проект рос быстро. Однако кульминацией стало осознание, что central model.go разросся до 1690 строк, содержащих один структ, который управлял UI, k8s-клиентом, состоянием всех вьюх, навигацией, кэшами и обработчиком мыши. Функция Update() насчитывала почти 500 строк с 110 веточками switch. Обнаружилась настоящая гонка данных: фоновая горутина мутировала общие поля без синхронизации, а гонка возникала лишь в 1% случаев, что делало отладку практически невозможной.
Автор выделил пять уроков: ИИ строит фичи, а не архитектуру; god object — дефолтный результат работы агента; иллюзия скорости расширяет масштаб задачи; данные без типов — бомба замедленного действия; агент не различает владельца состояния. Эти наблюдения точны и описывают фундаментальную проблему: модель не обладает чувством разрастающейся связности, она оптимизирует каждую отдельную задачу в моменте, не видя общей картины.
| Тезис автора | Что у нас вместо этого |
|---|---|
| God object по умолчанию | Модуль отдаёт наружу один index.ts, внутренние поля недоступны снаружи физически, ловит линтер |
| AI строит фичи, не архитектуру | Слои domain / application / infrastructure внутри каждого модуля, контроллер тонкий, бизнес-правило не может прилипнуть к HTTP |
| Иллюзия скорости расширяет скоуп | Лимит на три внешние зависимости в юзкейсе в dependency-cruiser, четвёртая зависимость валит CI |
| Данные без типов | domain это чистый TypeScript без единого импорта фреймворка, никаких позиционных массивов вместо структур |
| Агент не владеет состоянием | Изменения между модулями идут через события, а не через прямую мутацию чужих полей |
Другой Full-Stack JS архитектор, работающий с Claude Code с 2024 года и перестроивший 200K-строчный проект под ежедневную работу с агентом, солидарен с диагнозом, но считает вывод «возвращаюсь писать руками» ошибочным. Он указывает, что все пять тезисов — это проблемы практики, а не инструмента. Проблема не в том, что ИИ генерирует код, а в том, что автор не задавал архитектуру заранее, не писал тесты, не ревьювил код на архитектурную целостность. Решение — не отказ от ускорения, а внедрение новых практик: явные контракты, предварительное проектирование, код-ревью с акцентом на архитектуру, а не только на функциональность.
Автор семь месяцев вайб-кодил через Claude, создав god object на 1690 строк, что привело к архитектурным проблемам.
Эта дискуссия отражает зреющий в сообществе раскол: одни видят в ИИ-кодинге путь к быстрой разработке прототипов, другие указывают на накопление технического долга. Опыт k10s — яркий пример того, как бездумное использование мощного инструмента может привести к катастрофической архитектуре, но он же показывает, что правильные процессы (например, четкие интерфейсы и обязательное ревью) могут сделать ИИ-ассистента незаменимым помощником, а не врагом ремонтопригодности.

