Pull to refresh

Comments 12

200к строк это небольшой проект, это излишество, он целиком влезает в контекст опуса

а для более крупных надо просто заранее продумывать архитектуру

Та же проблема в проекте ~150К строк. Bounded contexts + контракты помогают, но AI всё равно не видит сайд-эффекты на стыках модулей. Как решаете?

150к строк полностью влезает в контекст нейронки

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

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

Согласен, пришел к похожим идеям. Контроль должен быть на физическом уровне - т.е. тупо не должно быть возможности обойти публичные контракты.

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

С конкретными правилами, цифрами до и после, и честным разделом про то, где Clean Architecture начинает мешать самому же агенту.

У вас кусок промта протёк в статью. Заберите свой нейрослоп обратно.

Может стоит чуть-чуть вчитаться в то, что там написано?

Понравились советы, как сделать чтобы агент не ломал архитектуру.

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

И что, в проекте нигде нет lazy loading?

index.ts же тащит в сборщик всё сразу

Sign up to leave a comment.

Articles