⚪️ Нет - трубам! (архитектурное)
Любопытную статейку прочитал, про архитектуру в эпоху ИИ агентов:
🔗 https://ianbull.com/posts/software-architecture
TLDR от ноутбука-ЛМ в комменты зашлю, для нечитавших.
▶️ С мыслью автора сложно спорить - он очень верно подметил сложность для ИИ агентов: они не могут удерживать "в уме" стейт системы на несколько уровней "вглубь". То есть если у функции есть сайд-эффект, то один уровень, максимум два современные модели осознают. А дальше - все, тупик, не одупляют.
Поэтому если у вас в коде сложная система взаимодействий и сайд-эффектов, для ИИ агентов это будет крайней сложностью. Они рекурсивно по цепочке кода конечно сходят, но каждое действие продумывать с учетом всей глубины сайд-эффектов не смогут.
Пример: у вас обновление в БД запускает нотификацию. Нотификация обновляет метрику где то, вызывая апдейт лимитов. Лимиты обновляются, и могут ставить лок на аккаунт.
Идея в том, чтобы уйти от такого кода к более простому: каждое действие самодостаточно и минимиировано по сайд-эффектам. БД обновил, и все. Если нужна нотификация и вся последующая цеопчка логики, то ее следует вынести из "глубокой цепочки" в обычную плоскую функцию - типа сделай всю работу по этапам: обнови бд, лимиты, статус аккаунтов; чтобы это было внутри одной функции.
Тогда сложность системы для понимания ИИ станет меньше, ошибок в логике станет меньше. В свое время это называлось низкой связанностью.
Короче - каскадные действия, "трубы" мы выкапываем, убираем методом дробления на чистые кусочки. Переходим к оркестрации "стоков" (sinks)
—-
Ну и агитация за модульность / инкапсуляцию, понятные контракты и четкие уровни.
Все зависимости явно добавляем в интерфейсы.
Progressive Disclosure работает и здесь - не документацией единой же.. Принцип тот же и он жффективен
Реструктурируем проект почти как завещало С4, например, из паутины мелкий модулей структурировать по более крупным подсистемам и компонентам.
▶️ Такая вот идея, с которой сложно спорить. Зачем спорить? Такое применять надо
В общем, действительно олд-скулл. Если люди вам не сказали спасибо за такой код, скажут роботы.
(ц) занимательное и полезное чтение
@deksden_notes
Post #520
2.59K