Что должно быть в features в контексте FSD

«Что должно быть в features в контексте FSD» — вопрос из категории Архитектура, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В FSD (Feature-Sliced Design) features — это слой, содержащий бизнес-логику и UI конкретных фич приложения. Он включает:

  1. UI-компоненты, специфичные для фичи.
  2. Логику (хуки, сторы, API-вызовы).
  3. Типы и константы, относящиеся к фиче.
  4. Тесты (юнит, интеграционные).

Фичи должны быть изолированы и слабо связаны с другими слоями. Пример структуры:

features/
  auth/
    ui/LoginForm.tsx
    model/authSlice.ts
    api/authApi.ts
    lib/hooks/useAuth.ts

Важно: фичи не должны зависеть от других фич напрямую, а общение между ними — через shared или app слои.