Replies: 13 comments 25 replies
-
Фичи бывают разные...
В некоторых проектах весь функционал сосредоточен в данных с сервера
В таком случае именно эти данные (роутинг, права, действия, сущности и т.д.) описывают функциональность более точным образом, а не само приложение-генератор Так - понятие Т.е. здесь |
Beta Was this translation helpful? Give feedback.
-
API и Бизнес-Логика
Бывает, что нужно привязать конкретную БЛ при работе с API (например уведомления пользователя) Но т.к., по-хорошему, напрямую
Обычно у нас один И по методологии, он не может что-либо знать про саму бизнес-логику, и соответственно импортить определенные |
Beta Was this translation helpful? Give feedback.
-
LIB и стейт
У
|
Beta Was this translation helpful? Give feedback.
-
UI, API и стейт
Допустим, нужны контролы с завязанной на API логикой (н-р: селекты с автокомплитом и подгрузкой справочников) Так, связку компонента и API лучше организовывать на уровне
Там же следует организовывать и связку компонента и стейта (если он нужен)
Клиентская часть всегда оперирует своими сущностями в логике, но не хочется каждый раз менять структуру, при каждом изменении API
|
Beta Was this translation helpful? Give feedback.
-
Про роутинг и обработку ошибок
Не всегда удобно резолвить роутинг на уровне Обычно хранят такие вещи в Где хендлить ошибку 401?Лучше обрабатывать на уровне |
Beta Was this translation helpful? Give feedback.
-
Nav-меню и БЛ
В таком случае - навигация вполне может быть фичой, если вычленить конкретную бизнес-ценность из этого (не просто хедер, а nav-меню). Иногда может потребоваться разбить и на две фичи По сессии - можно брать информацию из
|
Beta Was this translation helpful? Give feedback.
-
Что есть entity и feature?
|
Beta Was this translation helpful? Give feedback.
-
Переиспользуемая логика и features
При реализации фичи, есть желание юзать больше чистых функций, для каких-то базовых валидаций, редиректов - и засунуть такое сразу в Но тогда логика распыляется между Как лучше поступить:
|
Beta Was this translation helpful? Give feedback.
-
Cross-imports и анализ зависимостейНикогда и нигде не рекомендуется практиковать cross-imports, иначе придется бороться с циклическими зависимостями
Чтобы резолвить такие ситуации - практикуется проектировать модули так, чтобы их было легко расширять
Для анализа и предотвращения можно использовать: |
Beta Was this translation helpful? Give feedback.
-
Что за сущности?Есть строго упорядоченный список:
Если конкретно
|
Beta Was this translation helpful? Give feedback.
-
Про общие типы
До этого была дискуссия - куда класть общеиспользуемые типы моделей @sergeysova: Мало кто готов класть в корень, поэтому стараюсь класть в соответственное место, как и обычный код (в конкретный компонент/абстракцию и т.д.) |
Beta Was this translation helpful? Give feedback.
-
Кнопка-фича
Q: Вот есть кнопка загрузки/прогрузки/создания и т.д. - и это есть фича? A: Сама кнопка - ui, но фича - только если получится представить это в виде бизнес-ценности (определенный результат и процесс) Каждая фича (абстракция) должна делать что-то одно и использовать расширеямые модули (абстракции ниже), чтобы не менять каждую конкретную фичу
|
Beta Was this translation helpful? Give feedback.
-
Про тестирование
Начнем с конца:
Про подходСтараемся по семантичности - то как это видит пользователь
|
Beta Was this translation helpful? Give feedback.
-
@sergeysova провел созвон с одним из приверженцев feature-sliced, который поделился опытом и поставил перед методологией весомые вопросы
Beta Was this translation helpful? Give feedback.
All reactions