Важно понимать изначально основные принципы FSD

Разделение по слоям. Проект делится на логические слои, каждый из которых выполняет конкретную роль. Например:

  • App — глобальные настройки приложения, маршрутизация, провайдеры контекста.
  • Features — отдельные функции приложения, которые могут использоваться независимо (например, форма входа, кнопка лайка).
  • Entities — бизнес-объекты, содержащие логику работы с конкретными сущностями (пользователь, статья, комментарий).
  • Shared — повторно используемые компоненты и утилиты (UI-библиотеки, хелперы, константы).

Принцип изоляции. Каждый слой зависит только от более низкого. Например, Feature может использовать Entity и Shared, но не зависит от Process или App. Это позволяет минимизировать хрупкость кода и избегать циклических зависимостей.

Модульность и переиспользуемость. Каждый модуль (фича или сущность) содержит всё, что нужно для работы: компонент, логику, хуки, тесты, типы.

Однонаправленный поток данных. Слои импортируют только нижележащие слои, но не наоборот. Чётко определённый публичный интерфейс. Через него другие части приложения взаимодействуют с модулем.