Давид
@run_davids_sh выкатил методичку WSD — архитектуру фронта, которой не нужен рефакторинг. Прочитал, и сразу триггернуло одну штуку, которая давно крутилась.WSD работает, потому что у фронта один энтрипоинт — UI. Все слои выстраиваются от него вниз. Но как только проект перерастает одну морду — появляется бот, воркер, публичное API, MCP-тул, скрипт ретраев — модель размещения начинает плыть. Бизнес-логику в shared класть нельзя, там примитивы. В роут нельзя, он не один. В "ещё один widget" не вяжется, widget про UI.Особеннно если мы говорим про фулстек сетапы на Next.js/Tanstack Start/монорепо и тдСел и упаковал это в что-то вроде методички:
Capability Core + Adapters. Не Clean Architecture, не FSD-для-фулстека. Словарь и правила размещения, отвечающие на один вопрос: кто владеет поведением, когда энтрипоинтов много.- framework routes за энтрипоинтами- capabilities за поведением- domain за правдой- contracts за границами- platform за инфрой- shared за примитивамиОтдельно прописал кусок про работу с кодинг-агентами. У них без явных правил размещения дефолт разрушительный: видят роут — пишут логику туда, видят shared — пихают продуктовый хелпер, падает джоба — патчат только её путь. Репо даёт им ретривал-процедуру и куда что класть.На серебряную пулю не претендую. Но как дефолтный подход, когда никакого подхода нет - думаю самое то. shadcn для архитектуры, так сказать)А если у вас уже есть своя и работает — оставляйте ее)
https://github.com/malakhov-dmitrii/capability-core-adapters