← На главную

ИИ строит монолиты вместо архитектуры

11.05.2026 01:23 · hackernews

Разработчик решил вернуться к написанию кода вручную после семимесячной эры «vibe-coding». Он запускал проект k10s полностью на ассистентах, но столкнулся с крахом архитектуры. Инструмент начинался как дашборд для GPU-кластеров NVIDIA, но AI быстро добавил кучу лишних фич вроде поддержки всех видов ресурсов, что превратило нишевый проект в универсальный аналог k9s. Скорость разработки казалась чудом, пока не случился сбой: таблицы пустели, данные устаревали, а код превратился в одну огромную структуру Model с тысячей строк. Это главный урок: ИИ генерирует отдельные фичи, но не видит целостной архитектуры. Чем дольше вы позволяете машине рулить без ограничений, тем хуже становится wreckage.

Ошибки накопились в нескольких плоскостях. Во-первых, появилась «божественная сущность» — единая структура, куда AI засовывал всё подряд. Вместо изоляции состояний разных виджетов, код стал гигантским переключателем, где каждая новая фича требовала добавления веток условий и ручной очистки памяти. Ключи нажатия тоже размазались по одной карте, где одна кнопка делала разные вещи в зависимости от текущего контекста, что делало отладку невозможной. Во-вторых, скорость создавала иллюзию бесконечного бюджета, пока реальный бюджет сложности не иссяк. В-третьих, позиционные данные в массивах строк стали бомбой замедленного действия: добавление нового столбца ломало сортировку, а ИИ не видел проблемы из-за отсутствия типов. В-четвёртых, данные передавались между потоками без блокировок, что вызывало гонки данных. И в-пятых, переходы состояний нарушали правила архитектуры Bubble Tea.

Из руин разработчик извлек пять принципов для директив CLAUDE.md и AGENTS.md. Первый: пишите архитектуру и интерфейсы сами до первого запроса, запрещающие ИИ менять состояния друг друга. Второй: запрещайте единые структуры и давайте каждый виджету свой тип и свои ключи. Третий: фиксируйте в документе строгую целевую аудиторию, чтобы не раздувать проект лишними фичами. Четвёртый: все данные должны быть типизированными структурами, а не плоскими массивами строк. Пятый: любые мутации состояния идут только в основном цикле, а бэкграунд-задачи только шлют сообщения через каналы.

Теперь разработчик пишет к10с на Rust, потому что чувствуют проблемы раньше, чем они становятся кодом. AI выдаёт правдоподобный, но часто нерабочий код, а человек нужен именно чтобы заметить, где архитектура начала гнить.

Читать оригинал →