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

FAQ

info

Свой вопрос можно задать в telegram-чате / github-issues / github-discussions

Структура = Архитектура?

Архитектура - про абстракции и выстраивание связей между ними (shared/features/pages/...)

Но без надлежащей структуры - хорошей архитектуры не сделать

Нужна ли мне методология только для "понимания и ясности" что происходит в проекте?

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

Иначе приходится читать огромные директории components/...

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

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

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

Зачем нужна еще одна методология, когда все строится на принципах?

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

Где найти примеры применения методологии?

В открытом доступе пока есть только такие, не все до конца адаптированы до последней версии

В ближайшее время список будет пополняться и будет вынесен в отдельный раздел

Также можно ознакомиться с гайдами и туториалами

Есть ли какие-нибудь полезные ресурсы/статьи/и т.д. по FeatureSliced и связанным вещам?

https://github.com/feature-sliced/awesome

Проект написан на feature-slices v1, как обновиться и стоит ли?

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

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

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

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

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

А что с Atomic Design?

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

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

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

  • Entity - бизнесовая сущность
    • blog-post / user / order / product / ...
  • Feature - бизнесовая фича, действие над сущностью
    • create-blog-post / login-by-oauth / edit-account / publish-video / ...

См. также справочную информацию по сравнению, реализация viewer логики по слоям

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

Общие шаблоны для разметки лучше хранить в shared/ui, но бывают разные случаи

А будет тулкит / линтеры?

Будет, на данный момент - в разработке =)

Пока что, для сортировки / запрета импортов можно воспользоваться

  • eslint-plugin-import
  • eslint-plugin-simple-import-sort
  • eslint-plugin-boundaries
  • dependency-cruiser

См. базовый пример конфига

Могу ли я хранить фичи используемые на одной странице прямо в директории страницы?

Методология крайне не рекомендует так делать, поскольку каждому модулю есть соответствующее место в структуре

Иначе - есть риск усложнения кодовой базы проекта

"Сегодня фича может использоваться только на одной странице. На следующей неделе - на трех. А через месяц - ее может не быть совсем. Мы не можем предсказывать будущее, и нужно каждый раз воздерживаться от преждевременных оптимизаций"

См. также пример из quick-start

[01/12] logo-mini