FAQ
Свой вопрос можно задать в Telegram-чате, Discord-сообществе и GitHub Discussions.
Существует ли тулкит или линтер?
Да! У нас есть линтер Steiger для проверки архитектуры вашего проекта и генераторы папок через CLI или IDE.
Где хранить 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 был создан.
Нужна ли архитектура/методология начинающему разработчику?
Скорее да, чем нет
Обычно, когда проектируешь разрабатываешь проект в одно лицо - все идет гладко. Но если появляются паузы в разработке, добавляются новые разработчики в команду - тогда-то и наступают проблемы
Как мне работать с контекстом авторизации?
Ответили здесь