
Clean Architecture и AI: как я перестроил проект на 200К строк, чтобы агенты не ломали код
Ra2007 33 минуты назад Clean Architecture и AI: как я перестроил проект на 200К строк, чтобы агенты не ломали код Средний 11 мин 749 Искусственный интеллект Программирование * JavaScript * TypeScript * Кейс Полгода...
Anthropic — What company has the best second artificial intelligence model at the end of June?
В сфере искусственного интеллекта произошло заметное событие. Ra2007 33 минуты назад Clean Architecture и AI: как я перестроил проект на 200К строк, чтобы агенты не ломали код Средний 11 мин 749 Искусственный интеллект Программирование * JavaScript * TypeScript * Кейс Полгода назад я открыл pull request от Claude Code и завис над одной функцией. Она работала, тесты были зелёные, ревьюер из команды поставил апрув. А я не мог в неё внести правку, не подняв в голове граф из восемнадцати файлов.
Сервис уведомлений тянул зависимости из биллинга, из профиля, из аналитики и ещё из десятка мест. По факту это был бетон. Тогда я сформулировал мысль, которая дальше определила полгода работы: агент не ломает архитектуру.
Технические детали
Он заливается в те щели, которые архитектура ему оставила. Где есть граница, он останавливается. Где границы нет, он соединяет всё со всем, потому что так короче и тесты всё равно проходят.
Это статья про то, как я перестроил TypeScript-проект на 200 тысяч строк, чтобы Claude Code приносил поддерживаемый код, а не работающий бетон. С конкретными правилами, цифрами до и после, и честным разделом про то, где Clean Architecture начинает мешать самому же агенту. Коротко о себе: я Full-Stack JS архитектор, стек TypeScript, Node.
Разрабатываю с AI в продакшене с 2024 года. Тот самый проект на 200К строк я год назад мигрировал с JS на strict TS, и про это писал отдельно. Тут речь про следующий этап, когда миграция закончилась, а агент остался в ежедневной работе.
Отраслевые последствия
Почему агент ломает код именно там, где слабая структураУ человека и у агента разная стоимость связности. Когда я пишу функцию руками и тяну в неё пятую зависимость, я физически чувствую трение. Надо вспомнить, где лежит модуль, импортировать, не запутаться в циклах.
Это трение работает как тормоз, я подсознательно ищу способ не плодить связи. У агента этого тормоза нет. Ему одинаково дёшево импортировать из соседнего файла и из модуля на другом конце проекта.
Ему так даже выгоднее. Он видит задачу локально: «добавь отправку письма при смене тарифа». Самый короткий путь к зелёным тестам это дёрнуть готовый сервис писем прямо из биллинга.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





