Обновить
32K+
13
Александр Рогов@Ra2007

Full-Stack JS Architect

62,7
Рейтинг
7
Подписчики
Отправить сообщение

Спасибо. Самое рабочее из всего, пожалуй, запрет на импорт из чужих внутренних модулей, остальное уже надстройка над этим.

Да, именно физический уровень. У нас границы вынесены в отдельные пакеты, импорт из чужого внутреннего модуля просто не напишется, eslint-boundaries рубит на корню. Пока контракт можно обойти по-человечески, агент рано или поздно это сделает, причём в самый неудобный момент. Когда обойти физически нельзя, выбора у него не остаётся.

Дело не в том, влезает проект в контекст или нет. Даже когда модель видит все 200к разом, она лезет через границу: чинит баг, дёрнув приватную функцию из соседнего модуля, потому что так короче. Архитектура нужна не чтобы уместить в окно, а чтобы агент не обходил контракт даже когда видит весь код. Продумать заранее согласен, но тут legacy, который уже есть, с нуля переписать не вариант.

Сайд-эффекты на стыках это как раз больное место. У нас агент не видел, что репозиторий дёргает вебхук, пока это не было явно в типе порта. Помогли две вещи: эффект стал частью контракта (порт описывает что он триггерит, а не только что возвращает), и интеграционные тесты ровно на стыках модулей, которые агент обязан прогнать. Дрейф ловится там, а не в юнит-тестах.

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

Так и пришли в итоге. Главный файл держим коротким, а методику, стандарты и паттерны вынесли в отдельные файлы которые подтягиваются по необходимости. Эффект двойной: основной контекст не раздувается, и каждый кусок можно править отдельно не задевая остальное. Плоский CLAUDE.md на 8000 слов это была стадия которую надо было просто пережить.

Глянул overview, спасибо. Neo4j под методологию выглядит логично, граф как раз для того чтобы агент шёл по связям а не грузил всё плоским файлом. У нас пока проще, markdown со ссылками, но на больших проектах плоская структура начинает мешать. Любопытно как держите граф в актуальном состоянии, дополняете руками или агент сам дописывает узлы по ходу работы?

Согласен, список это только видимая верхушка. Опыт нужен чтобы понять какой вопрос задать в новой ситуации, которой в списке нет. Чек-лист закрывает известное и очевидное, OWASP top-10 и подобное. А чутьё на то что странный поток транзакций пахнет проблемой, хотя формально всё зелёное, из чек-листа не достаётся. Список даёт вайбкодеру пол шага, дальше нужен тот кто эти списки набивал руками.

Тут соглашусь, kill-switch это родовая черта SaaS, кто платит за облако принимает это по умолчанию. Но раньше рубильник был у самого вендора и срабатывал по понятным причинам, неоплата или нарушение правил. Здесь дёрнуло третье лицо, государство, и под раздачу попали те кто всё оплатил и ничего не нарушал. Меняется не наличие рубильника, а кто и по какому поводу его жмёт.

Хороший разбор, gmail.modify плюс корзина вместо удаления это по сути и есть обратимость, согласен что так даже надёжнее моего «сначала только чтение». Драйран который ловит улетевшую в спам рассылку магазина прям показательно, без него такие вещи всплывают через неделю когда уже поздно. Беру связку scope плюс предпросмотр на заметку для своих сценариев с почтой.

Процессы те же, согласен. Но одно поменялось по факту: раньше узким местом было написание кода и ревью за ним поспевало. Сейчас генерация почти бесплатная, а ревью руками не масштабируется, столько за день не прочитаешь. Поэтому проверки приходится толкать в автоматику, composition analysis и пиннинг зависимостей в CI. Slopsquatting у нас ловит lockfile, на глаз такое уже не поймаешь.

Главное тут не модель, а то что у IndexedDB есть WPT как исполняемое определение «готово». Гонял Claude в похожем цикле на TS миграции, где тестов почти не было, агент уверенно зеленил то что сам же и придумал, дрейф пошёл сразу. Там где тесты заданы заранее, цикл сходится, где нет, ночью получаешь красиво оформленный мусор. Спека на английском плюс приёмочные тесты решают больше чем выбор модели.

Зацепил второй пункт, прям про меня. Сел отправить пост в телеграм, а к утру у меня вместо поста редакция из агентов, которой пользуюсь я один. Всё работает, всё красиво, только пост так и не ушёл. Спасло тупое правило: если самописная штука не окупится за неделю, беру готовое и иду делать дело. Раньше это за меня решала цена, теперь приходится себя одёргивать руками.

Разгребал похожее полгода назад, правда с кодовой базой а не фотоархивом, около 180К файлов с историей на 8 лет. Главный вывод совпадает: AI-агент хорошо справляется с задачами где есть объём и понятный критерий «готово», но человек давно бы сдался от монотонности. Интересно что вы дали агенту доступ к Gmail API напрямую, я обычно осторожнее и даю только чтение на первом проходе, потом отдельно подтверждаю действия. Для фотоархива разумный риск, но для рабочей почты добавил бы промежуточный шаг с превью что агент собирается сделать.

У меня это тоже случается, отложил пять задач на «завтра» и вот завтра наступило с таймером. Про параллельные агенты есть нюанс: шесть одновременно это не оптимально, контексты начинают мешать друг другу раньше чем заканчивается квота. На практике два-три параллельных на разных частях одного проекта работают лучше, каждый держит меньше в голове и ошибок меньше. Слово Lastbursting хорошее, беру. И интересно про один большой промпт на всё сразу, это честный способ проверить где у модели реальный потолок, без декомпозиции которая всегда немного читерство.

Ну с оружием и военкой всё понятно, там ограничения никого не удивляют. Здесь интересно другое: Claude это SaaS к которому ты подключаешься через браузер как к любому другому продукту. Anthropic продавала подписки без вопросов о гражданстве, и вот в один день компания получила устные объяснения от правительства и была вынуждена отключить сначала иностранцев, потом вообще всех. Прецедент не в том что ограничения существуют, а в том что привычный SaaS может быть отозван по щелчку пальца, без суда, без внятного объяснения клиентам.

Работал с несколькими такими продуктами в последние полгода, и это принципиально другая история. Архитектор со спекой задаёт правильные вопросы ещё до первого промпта: что хранится, где граница доверия, что происходит при компрометации ключа. AI получает нормальное ТЗ и строит соответственно. Security-инженер после сборки запустит OWASP ZAP, прогонит Semgrep, проверит заголовки. Нагрузочник поставит k6 и посмотрит что будет при 10x трафике. Без навыка чтения кода они всё равно верифицируют поведение, а не текст. Проблема из моего комментария была про другой сценарий: человек без вопросов на входе и без инструментов проверки на выходе.

Работаю на Max подписке Claude Code уже два месяца, до этого сидел на API с pay-per-token. Разница в экономике ощутимая, но не там где ожидал. Токены на API при активной разработке выходили в $150-200 в месяц, Max стоит $100, казалось бы очевидно. Но главная выгода не в деньгах, а в поведении: когда платишь за токен, начинаешь неосознанно сжимать контекст, резать историю, избегать больших файлов. На фиксированной подписке агент наконец-то получает полный контекст без ограничений и качество заметно другое. Единственное о чём редко пишут: у Code-подписок свои rate limits которые не совпадают с API лимитами, и в пиковые часы можно упереться в throttling даже на Max.

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

1
23 ...

Информация

В рейтинге
130-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Full-Stack JS Architect
Старший
JavaScript
React
TypeScript
Node.js
React Native
MobX
Next.js
Redux
GraphQL
WebSockets