From 073fc6507fe83634aa3e28011a65d48dcce688e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=93=D1=80=D0=BE?= =?UTF-8?q?=D0=BC=D0=BE=D0=B2?= Date: Fri, 3 Apr 2026 20:02:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20notes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- notes | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/notes b/notes index 14a7c9d..7bfbf2f 100644 --- a/notes +++ b/notes @@ -125,4 +125,29 @@ src/shared/ Составной блок с данными на 2+ страницах? widgets/ ↓ Это действие пользователя с логикой? features/ ↓ Привязан к бизнес-сущности? entities/ ↓ -Абстрактный UI без бизнес-логики? shared/ui/ — \ No newline at end of file +Абстрактный UI без бизнес-логики? shared/ui/ — + + +И еще размышлений + + + + + + +Что у нас по факту +Мы взяли FSD и добавили: +- Слой Layouts — каркас страницы +- Слой Screens — контент страницы с локальными компонентами +- Правило scope — компонент живёт максимально близко к месту использования, и поднимается на уровень выше только при переиспользовании +Это не FSD в чистом виде. Но и не что-то принципиально новое. +Существующие названия +Feature-Sliced Design (FSD) — то от чего отталкиваемся, но расходимся в деталях. +Screaming Architecture (Robert C. Martin) — структура проекта "кричит" о том, что он делает. Открываешь screens/knv/ui/ — видишь КНВ. Открываешь widgets/ — видишь глобальное. Это близко к нашему подходу. +Colocation Principle — держи код рядом с тем, где он используется. Именно этот принцип отличает нас от FSD: page-specific компоненты лежат внутри screen, а не в глобальном widgets/. +Как назвать +Я бы не стал придумывать новое название. Это: +> FSD с принципом колокации (FSD + Colocation) +Или проще — адаптированный FSD. Суть отличия укладывается в одно правило: +> Компонент живёт на самом низком уровне, где он используется. Поднимается выше только при переиспользовании на 2+ страницах. +Если хочется краткое название для внутренней документации — можно SLD (Scoped Layer Design), подчёркивая что каждый компонент привязан к scope (shared → entity → feature → widget → screen → layout → page).