Как стать автором
Обновить

Комментарии 11

Непонятно, куда класть модалки и утиль

то есть файл хелперс таким и остался после всего этого феншуя?

Как бы классика которой 10 лет

Вас все еще не заблокировали? О.о

В shared — только общее.

Получается, если ты пишешь качественный переиспользуемый код, а не прибиваешь его гвоздями к одному единственному месту использования, то весь этот код надо класть в shared?

В entities — только бизнес-логика.

А что такое "бизнес-логика" на фронтенде, который зачастую сам по себе является лишь отображением данных с сервера?

В features — только действия.

Почему бы не назвать это actions?

В widgets — только блоки.

А если я хочу приложения встраивать друг в друга - их тоже в виджеты класть?

В pages — только маршруты.

А если какая-то страница показывается в зависимости от состояния в сессии, а не в ссылке - её сюда класть или нет?

В app — точка входа и зависимости.

А если у меня несколько приложений с 95% общего кода - их все сюда класть или в отдельные репозитории копипастить?

А чем FSD лучше DDD ?

Я бы сказал так - лучше с FSD чем без него)

Как правило в реакт проектах ребята просто раскладывают компоненты слайсы фичи утилиты и все прочее в рандомные папки, а с FSD хоть какой то полупорядок будет.

Ну да FSD заговорил о стандартизации структуры каталогов

Ну да FSD заговорил о стандартизации структуры каталогов

Только вот подход FSD оказался отвратительным.

Была папка utils как Война и мир, а теперь папка shared как две войны и мир стала)

Подход удобен, когда страницы ± похожи между собой. А когда у тебя 50 экранов высотой в 3 экрана и общее между ними только хедер, от чего папка shared по методологии становится вместилещем для 300+ блоков - тут уж не до смеха. Ведь по FSD мы импортируем все файлы из нижних уровней, а на текущем должно быть только то, что к нему относится.

В папке shared только то, что используется в нескольких местах одновременно, если у вас блок используется только на одной странице, то в shared его класть очевидно не надо

Методология подразумевает, что они будут лежать именно там, т.к. на слоях выше им просто нет места + нет понимания, будет ли это переиспользоваться в будущем. Каждая папка подразумевает свой слой составных частей приложения. В entities, который находится над shared, уже просто нет места для какой-то уникальной кнопки. А ещё выше для неё тем более не найдётся места, т.к. уже целые фичи да процессы лежат.

P.S. ознакомился сейчас с документацией ещё раз. Судя по всему, эту проблему уже решили, дав возможность на любой слое использовать слайсы (кроме App и Shared) и сегменты, что в принципе позволяет на двух соседних страницах или в двух соседних виджетах создать папки ui, где будут лежать их уникальные компоненты.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации