Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: architecture, fsd, atomic design

Какие методологии организации проекта (FSD, Atomic Design) ты использовал? В чём их отличия?

Вопрос направлен на выявление опыта в структурировании кодовой базы и понимания философии разных популярных методологий.

Короткий ответ

Atomic Design — это методология дизайна, которая делит интерфейс на иерархические уровни: атомы (кнопка, инпут), молекулы (поисковая строка = инпут + кнопка), организмы (шапка сайта), шаблоны и страницы. FSD (Feature-Sliced Design) — это архитектурная методология для frontend-проектов, которая фокусируется на организации папок по бизнес-логике: она делит код на слои (app, pages, features, entities, shared). Ключевое отличие: Atomic Design — это про компоненты, а FSD — про всю структуру проекта, включая логику, состояния и API.

Длинный ответ

Обе методологии помогают создавать масштабируемые и поддерживаемые проекты, но делают это с разных точек зрения.

Atomic Design (by Brad Frost)

  • Философия: Декомпозиция пользовательского интерфейса на небольшие, переиспользуемые компоненты, подобно тому, как вещество состоит из атомов, молекул и т.д.

  • Уровни:

    1. Атомы: Базовые строительные блоки (кнопки, инпуты, иконки).

    2. Молекулы: Простые комбинации атомов (поисковая строка = поле ввода + кнопка).

    3. Организмы: Более сложные, законченные блоки интерфейса (шапка, содержащая логотип, навигацию и поисковую молекулу).

    4. Шаблоны: Макеты страниц без контента, показывающие структуру.

    5. Страницы: Конкретные экземпляры шаблонов с реальным контентом.

  • Фокус: В первую очередь на визуальной составляющей и переиспользовании компонентов.

Feature-Sliced Design (FSD)

  • Философия: Организация всей кодовой базы по бизнес-возможностям (features) и строгое разделение ответственности между различными архитектурными слоями.

  • Слои (от низкого к высокому уровню):

    1. Shared: Переиспользуемые общие модули (UI-кит, утилиты, API-инстансы).

    2. Entities: Бизнес-сущности (например, User, Product, Order).

    3. Features: Бизнес-возможности, специфичные для приложения (например, auth-by-email, product-search). Каждая фича содержит всю логику для своей работы (UI, хуки, store, API-вызовы).

    4. Widgets: Композитные блоки, собирающие несколько фич и сущностей для создания сложных секций страниц.

    5. Pages: Конечные страницы приложения, композитные слои, которые собирают виджеты и фичи.

    6. App: Глобальная конфигурация приложения, провайдеры, стили.

  • Фокус: На архитектуре всего приложения, разделении ответственности и управляемости бизнес-логики.

Ключевые отличия:

  • Scope: Atomic Design — это дизайн-система и структура компонентов. FSD — это полноценная архитектурная методология для всего проекта.

  • Гибридный подход: Часто эти методологии используют вместе. В рамках FSD-слоя shared/ui можно организовать компоненты по принципам Atomic Design, а в слоях features и pages — использовать эти компоненты для построения бизнес-логики.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • React

    React

Ключевые слова

#architecture

#fsd

#atomic design

Подпишись на React Developer в телеграм