Перейти к основному содержимому

FAQ

Свой вопрос можно задать в Telegram-чате, Discord-сообществе и GitHub Discussions.

Существует ли тулкит или линтер?

Есть официальный конфиг для ESLint — @feature-sliced/eslint-config, и плагин для ESLint — @conarti/eslint-plugin-feature-sliced, созданный участником сообщества Александром Белоусом. Мы будем рады вашим вкладам в эти проекты или созданию своих!

Где хранить layout/template страниц?

Если вам нужны простые шаблоны разметки, вы можете хранить их в shared/ui. Если вам нужно использовать более высокие слои, есть несколько вариантов:

  • Возможно, вам вообще не нужны лейауты? Если макет состоит всего из нескольких строк, разумно будет дублировать код в каждой странице, а не пытаться абстрагировать его.
  • Если вам нужны лейауты, вы можете хранить их как отдельные виджеты или страницы, и компоновать их в конфигурации роутера в App. Вложенный роутинг — еще один вариант.

В чем отличие feature от entity?

Entity — это понятие из реальной жизни, с которым работает ваше приложение.. Feature — это взаимодействие, представляющее реальную ценность для пользователей; что-то, что люди хотят делать с сущностями.

Для получения дополнительной информации, а также примеров, см. страницу про слайсы в разделе Reference.

Могу ли я вкладывать страницы/фичи/сущности друг в друга?

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

Вы не можете импортировать одну фичу из другой фичи, это запрещено правилом импортов для слоёв.

А что с Atomic Design?

Текущая версия методологии не обязывает, но и не запрещает использовать Atomic Design вместе с Feature-Sliced Design.

При этом Atomic Design хорошо применяется для ui сегмента модулей.

Есть ли какие-нибудь полезные ресурсы/статьи/т.д. по FSD?

Да! https://github.com/feature-sliced/awesome

Зачем мне нужен Feature-Sliced Design?

Он помогает вам и вашей команде быстро ознакомиться с проектом с точки зрения его основных компонентов, приносящих бизнес-ценность. Стандартизированная архитектура помогает ускорить онбординг и разрешать споры о структуре кода. См. страницу Мотивация, чтобы узнать больше о том, почему FSD был создан.

Нужна ли архитектура/методология начинающему разработчику?

Скорее да, чем нет

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

Как мне работать с контекстом авторизации?

Ответили здесь