Архитектура в React: правильная структура приложения [Frontend]

  Рет қаралды 48,369

Егор Локи [Frontend]

Егор Локи [Frontend]

Күн бұрын

Архитектура в React: правильная структура приложения. В этом видео я расскажу про правильную архитектуру веб-приложений на ReactJs для создания качественных продуктов, рассмотрев 2 лучшие методологии - Feature-Sliced-Design и Atomic Design
💥Полезный контент про разработку + памятка FSD - t.me/xlok1e
🚀Документация - rebrand-sliced...
00:25 - Feature-Sliced-Desing
00:44 - Слои
03:30 - Практический пример
07:08 - Срезы
07:20 - Примеры срезов
08:37 - Сегменты
09:49 - Public API
11:00 - Atomic Design
11:22 - Атомы
11:34 - Молекулы
11:42 - Организмы
11:48 - Шаблоны
11:55 - Страницы
11:59 - Заключение

Пікірлер: 171
@xlok1e-it
@xlok1e-it 8 ай бұрын
💥Полезный контент про разработку + памятка FSD - t.me/xlok1e/21 UPD: Слой Processes устарел и больше не используется
@LION-jq9ve
@LION-jq9ve 7 ай бұрын
Есть такой инструмент Plantuml, это слой архитектуры. Обычно этот слой скрывают от команды. Его создают и потом практически не меняют, держат в секрете. Не мудрено что автор ничего не знает про слой архитектуры системы. Так же есть слой архитектуры бизнеса, Bpmn используют в основном. Это в ещё большей секретности держат. И как правило стараются архитектуру на bpmn выносить за пределы кода, максимум в лоу код. В обще автор молод, бизнес аналитика это удел топов, но это и самая интересная компетенция. Обычно это кто старше 40, а то и 50. С опытом не только фронтенд бэкэнд но и ассемблер порой армовский, чтобы видеть глубоко от общего к частному архитектуру разрабатываемой системы.
@-NiKoLaY
@-NiKoLaY 7 ай бұрын
"Каждый пост тоже будет являться виджетом" (5:51) - вот тут по моему есть небольшая ошибка. Виджетом тут будет являться весь PostList, который эти посты рендерит. А каждый пост это entity, который пропсом принемает какие либо actions (в нашем случае это лайк и коммент поста, которые пробрасываются ему в момент рендера в PostList). Сам PostCard (entity) абсолютно не знает, что за actions он будет принимать, но эти actions он внутри себя просто отрисовывает, если они есть. То, что кнопка лайка была названа виджетом (6:05), попахивает нарушением правил FSD, потому что в этом случае пост ( ранее тоже названый виджетом ) использует внутри себя другой виджет ( вот эту кнопку лайка ), а разрешено использовать только нижележащие слои. Лично я бы положил эту кнопку лайка в "ui" сегмент фичи, которая также отрисовывает и количество лайков конкретного поста ( во время рендера можно ведь прокинуть id конкретного поста, а дальше уже дело фичи отрисовать количество ). На счет того, что "фото" было помещено в entities тоже у меня возникают какие-то сомнения - фото это просто фото же, а entities - я частенько даю им такое определение - это как бы визуальная репрезентация того, что хранится в базе данных. Ну например PostCard это же entity, который показывает в виде карточки ту информацию, что хранится в бд. Кстати, разве слой processes не вычеркнули? (9:39) Лично я предпочел бы хранить "api" сегмент или запрос к серверу в том же модуле (slice), в котором он используется (например features/like-post/api/ ), просто чтоб все было рядом и не шататься между разными слоями, но это уже не правило FSD. По остальному примечаний у меня вроде нет, а кто хочет еще подробнее про FSD - рекомендую у UlbiTV посмотреть ролик про архитектуры фронта. Потом можно на официальном сайте посмотреть документацию и примеры работ, а дальше... только практика, всем удачи🤞
@easystyle3378
@easystyle3378 7 ай бұрын
Когда-нибудь люди поймут в 2024, что реакт не актуален про сравнению с его конкурентами.(P.S. Ангулару он даже в подметки не годится)
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет! Спасибо за такой подробный комментарий. Я прочел, и на самом деле по общему счету ты прав, я ошибся, за что прошу прощения. Не хватило информации об устаревшем слое. Я все это учту и постараюсь впредь быть более внимательным
@Genorred
@Genorred 5 ай бұрын
@@easystyle3378 поставлю за тебя свечку в церкве пожалуй
@vgsnva
@vgsnva 5 ай бұрын
А можешь рассказать как это помогает программировать? Пока я вижу только чистую субъективщину( кто как понимает так и делает, а каждый понимает так как ему удобно с его угла зрения). Просто хотелось бы на практике увидеть как это помогает вносить новые фичи, переделывать старые.
@flymorechannel9064
@flymorechannel9064 4 ай бұрын
@@vgsnva Это очень сильно помогает в структурировании проекта, когда у тебя 100500 файлов/папок и так далее. Помогает не запутаться в проекте в будущем и создает понятную структуру
@katherinerodriguez5265
@katherinerodriguez5265 7 ай бұрын
кто сказал, что это правильная структура frontend приложения?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Понятие правильная на самом деле у всех свое. Я рассказал про данные структуры, основываясь на своем коммерческом опыте и опыте других фронтенд разработчиков. Сейчас FSD используют практически все крупнейшие компании. И, вероятно, когда ты придешь в какой либо большой проект, в его стэк будет входить данная методология. + Она одна из самых удобных
@vovka_goodwin
@vovka_goodwin 7 ай бұрын
А какая правильная?
@melitopol_Russia
@melitopol_Russia 7 ай бұрын
я сказал, вопросы?
@gapragapr
@gapragapr 7 ай бұрын
А кто сказал, что не правильная?
@astkh4381
@astkh4381 7 ай бұрын
Я сказал.
@_boolive_
@_boolive_ 4 ай бұрын
Как то вы странно понимаете FSD. Не надо буквально как есть подгонять под свой проект описанные термины. Главная идея - группировать логику по фичам, а не типам. Например вместо общих папок для компонентов или состояния делайте папку фичи, например "каталог" и в ней уже и компонент каталога и состояние каталога . Кроме фич в архитектуре приложения понадобятся дополнительные слои, например для объединения всех фич в единый флоу (app), для стандартизации ui - библиотека ui-kit или просто утилиты - вот они и образует "слои" с названиями какие вам будут понятнее).
@danildanilov9047
@danildanilov9047 8 ай бұрын
Очень классные видосы,возобновил изучение фронта, очень мотивируешь:) продолжай в том же духе:)
@xlok1e-it
@xlok1e-it 8 ай бұрын
Спасибо✊
@FuriousBoreas
@FuriousBoreas 7 ай бұрын
Не фронт разработчик, но фронтовые задачи иногда делаю, понравилась вариация фиче ориентированной концепции, когда компоненты лежат в рамках фич, и выносятся на уровень иерархии так чтобы использоваться только в дочерних папках, но не в родительских, общие базовые же компоненты типо кнопок, тогглов, тупых иконок и тд используемых в нескольких фичах можно вынести в отдельный проект или папку. Потому что для большого приложения условные папка components заспамилась настолько сильно, что проще что-то найти через поиск по возможному имени файла, чем скроллить компоненты.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет! Да, очень тяжело работать, когда все скинуто в одну папку. Наступает хаос и масштабировать проект становится сложно)
@Кирилл-у3г6ы
@Кирилл-у3г6ы 7 ай бұрын
слой процессов deprecated же? вроде как писали что он особо не нужен и отменили
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Это так, он уже не используется. Забыл об этом упомянуть
@singularity3901
@singularity3901 7 ай бұрын
кем отменён? где-то есть консорциум и стандарт?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Не понял твой вопрос немного
@rexdraconis1703
@rexdraconis1703 7 ай бұрын
​@@singularity3901вово. В отличие от бека, на фронте каждый как хочет пишет.
@stewart6395
@stewart6395 Ай бұрын
5 лет разрабатываю на реакте. Понятие архитектура - довольно абстрактное. То что здесь рассказано - это организация директорий и файлов. Причем организация довольно запутанная и неочевидная. Никогда не буду ее применять и уж тем более советовать кому либо
@VitaliKarepanau
@VitaliKarepanau 7 ай бұрын
Обе архитектуры не жизнеспособны на крупных, развивающихся проектах: В первой проблема постоянных скачков между частями приложения, что в случае работы более 5 человек в параллели выльется в трэш с мержами. Во второй запаришься компоненты из папочки в папочку перекидывать. И это с учетом того, что паттерн был разработан для юай библиотек, а не для проектов.
@atmalive
@atmalive 7 ай бұрын
расскажите, куда смотреть?)
@VitaliKarepanau
@VitaliKarepanau 7 ай бұрын
@@atmaliveзависит от ситуации - не бывает идеальной архитектуры, которая все решает. 1. В любом случае накосячите с выбором архитектуры и придется менять/переписывать и т.д. все собственно как и с кодом 2. Имеет смысл всегда думать о базовых вещах: а. Бизнес логика всегда отдельно от презентационной логики (это про вью и контроллеры, фабрики, сервисы - можно назвать как угодно, смысл в том, что если есть возможность разделить ответственность - ее необходимо разделить) б. все связанное с конкретной задачей должно быть в одном месте (есть у вас фича и все по этой фиче должно быть в одной папочке (древе папочек), исключение - переиспользуемая часть, НО с переиспользлванием нужно быть аккуратным, если много условий в одном месте - значит это уже не переиспользуемый функционал, а разный, который почему-то смержили в одном месте - и лучше иметь 10 разных копий, чем одну, но с кучей условий) в. Вся группировка базируется только и только на основе задач, которые решает та или иная часть приложения (не по размеру как атомик, не по группам, как в базовом мвс, а именно по логичным человеческим задачам) В целом все равно любую архитектуру потом исправляют докручивают. Главное знать основы, а дальше думать, что работает для команды, а что нет.
@crypto_has_you
@crypto_has_you 20 күн бұрын
​@@VitaliKarepanauу меня как раз родилась такая проблема, как вы описали в 2.б. решил тупо копировать и добавлять в комплекте функционал под каждую страницу, потому что невозможно было поддерживать переиспользуемый компонент с переполненным функционалом в зависимости от условий пропсов. Дизайнер захотел везде один комплект по сути, но с кучей разных функций дополнительных
@Sergfio_S.F
@Sergfio_S.F 7 ай бұрын
Когда то и я абсолютно идентично относился к отношениям и семье. Это и есть главная ошибка, так как есть отношения, есть семья. Два абсолютно разных измерений. Имея семью: супругу и детей. Нужно и судить исходя из этого факта. Потому что ты уже не холостой парень, ты лично отвечаешь за детей. Это твое решение и решение супруги взять такую огромную ответственность на себя. Соответсвенно, вы должны детям обеспечить: детство, здоровое самолюбие и адекватную самооценку. Разрушая брак, рушиться их психика. Это все априори подразумевает что вы оба с супругой будете делать все для обратного. Это не просто. Думаете о браке? Значит прими следующее: все проблемы можно решить. Рушить брак, это не обсуждаться. Это фундамент, на котором нужно строить. Не готовы? Не делайте детей. Смотря на некоторых родителей, возникает вопрос - почему нету до сих пор что-то вроде обязательных «курсов для будущих родителей» много чего станет лучше, что касается воспитания. Я конечно не думаю, что Эдвард прочтет это, но поскольку считаю эту инфу очень важной, может кому-то поможет.
@Sergfio_S.F
@Sergfio_S.F 7 ай бұрын
Вот это прикол…что то у ютуба пошло не так. Я этот комментарии вообще под другим видео оставлял. А это, видео, про реакт было следующее. Жесть. Удалить комментарии? Совсем не в тему. Но спасибо за лайк! 👍🏼
@Alex-lc5gs
@Alex-lc5gs 3 ай бұрын
@@Sergfio_S.F читал до конца внимательно пытаясь понять суть того что написано и как оно связано с темой
@atmalive
@atmalive 7 ай бұрын
а еще совет))) не облайкивать комментарии. Я столкнулся с баном от ютуба за лайки всех комментов к своим видео, якобы за "спам" и не разбанили же ведь(
@malyuga4726
@malyuga4726 7 ай бұрын
С папкой App не совсем понял. Зачем там размещать fonts и styles если ты сказал, что общие компоненты должны быть размещены в shared?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Я подразумевал, что fonts и style у нас являются глобальными, следовательно можем поместить их в слой настроек приложения)
@KarasikHelen
@KarasikHelen 7 ай бұрын
Мы испрльзуем принцип fsd, но подогнали под себя. Добавили слой routers между app и остальными. И сократили другие слои. Так между app и shared мы оставили entities и features(объединяем несколько сущностей), иногда pages для объединения фичей. И после добавили routers. Очень удобно вышло 👍🏻
@KarasikHelen
@KarasikHelen 7 ай бұрын
Проблемы есть только с типом для AppState от стора редакса. Мы хитрые и сделали реэкспорт из shared 😮
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет! Интересно получилось, спасибо, что поделились)
@JohnDoe-eo9lc
@JohnDoe-eo9lc 7 ай бұрын
Мда, компетенция ру девов, как всегда, низкая.
@ИгорьЛисимов
@ИгорьЛисимов 5 ай бұрын
А лично мне проще воспринимать атомик, т.к. есть чёткое понимание структуры и функционала приложение и конкретный список "видов страниц".
@xlok1e-it
@xlok1e-it 5 ай бұрын
Атомик не специализируется на приложениях со сложной бизнес логикой, а так очень даже хорош
@frontfromsofa
@frontfromsofa 3 ай бұрын
Далеко не лучших)
@danilosgamer9832
@danilosgamer9832 7 ай бұрын
Больше спасибо за объяснение!!! Все предельно понятно❤
@xlok1e-it
@xlok1e-it 7 ай бұрын
Спасибо за комментарий, рад стараться. Удачного изучения 🔥
@gamspi9591
@gamspi9591 7 ай бұрын
Хорошее видео. но когда распределял куда что соотнести. сказал, что карточка поста это виджет, но по докам это ui элемент entities. так как относиться к сущности поста.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Спасибо за твой комментарий, я и в правду ошибся
@es7729
@es7729 7 ай бұрын
Хорошее видео. Молодец!
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Спасибо за поддержку, приятно)
@MatveiBelo-wb9hd
@MatveiBelo-wb9hd 7 ай бұрын
FSD очень сильно распиарена и переоценена). В большинстве случаев достаточным будет: 1. Понятное распределение файлов по известным директориям: redux, components - ui-kit, hooks, contexts, api. 2. Умение писать понятный, чистый код. Декомпозировать, выносить логику в хуки.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. То, что ты написал имеет смысл. В большинстве случаев это идеально подойдет. Но есть и правда очень загруженные проекты, работа с которыми вызывает сильную головную боль без правильной организации. Опять таки каждый сам для себя выбирает как и с чем ему работать. Главное, чтобы было удобно)
@vovka_goodwin
@vovka_goodwin 7 ай бұрын
Если у тебя проект небольшой то фсд создаст больше проблем чем пользы, но как только проект становится более или менее большим и в папке components будет хотя бы 50 компонентов тогда начнутся проблемы, на мой взгляд фишка фсд в уменьшении связанности файлов. У этой методологии есть проблемы с переходом на нее потому что привыкнуть к ее сущностям и легко определять что к чему относится бывает не так просто
@atmalive
@atmalive 7 ай бұрын
@@vovka_goodwin +++
@vl_rotche
@vl_rotche 6 ай бұрын
ужОссс
@ДаниярСалихов-ч8я
@ДаниярСалихов-ч8я 7 ай бұрын
Неплохое видео, спасибо. FSD: добавлю, что начиная работать с fsd не надо упарываться в декомпозицию - достаточно выбрать основной слой(например, pages или features) и писать весь код там, а дальше уже по мере необходимости декомпозировать. Как декомпозировать - это вопрос вкуса - примерно, как сортировать папки на компьютере. Нет единственно верного варианта. По итогу, FSD - это инструмент, который дает качественные, универсальные абстракции, способные эффективно структурировать код в большинстве доменов.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Спасибо за комментарий, ты написал все верно)
@DubinArtur
@DubinArtur 7 ай бұрын
"Этой технологией пользуются программисты из Яндекса". Не Яндекс в своих проектах использует, в просто программисты где-то используют
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Яндекс сам продвигает эту методологию на своих митапах и других мероприятиях. На сайте FSD есть список компаний, которые ее используют, помимо Яндекса там немало русскоязычных гигантов
@ByEfimov
@ByEfimov 7 ай бұрын
КАК же долго я ждал таких видео!! жду еще твоих роликов!
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет! Очень теплые слова, спасибо) Вскоре выпущу еще много полезного, забегай)
@RamaRama-qv3jo
@RamaRama-qv3jo 7 ай бұрын
Отличный контент и подход к подаче материала, приятно слышать и видеть) Очень просто о сложном, так держать)
@xlok1e-it
@xlok1e-it 7 ай бұрын
Спасибо за поддержку, рад стараться!)
@ruvim_night
@ruvim_night 7 ай бұрын
Спасибо Большое
@xlok1e-it
@xlok1e-it 7 ай бұрын
Пожалуйста, скоро запишу ещё полезностей, забегай)
@mironbarykin2379
@mironbarykin2379 5 ай бұрын
11 минут уделено FSD 1 минута уделена Atomic'у А в остальном хороший разбор FSD.
@arinqwerty
@arinqwerty 7 ай бұрын
спасибо за видео
@xlok1e-it
@xlok1e-it 7 ай бұрын
Рад стараться) Надеюсь, что было полезно. Заходи если что ещё, вскоре будет немало интересного 🧑‍💻
@Вадим-й8п4з
@Вадим-й8п4з 7 ай бұрын
Чувак, очень классный видос, я сейчас пишу новый проект, как раз думал разобрать эту методологию, подписываюсь на тебя со всех свои акков
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Огромное спасибо за поддержку, это правда невероятно приятно. Скоро запишу ещё много полезного, забегай) 🙌
@TahomaID
@TahomaID 7 ай бұрын
сколько нужно опыта чтобы понять это? ну не могу же я юыть таким тупым...
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Понимание чего-либо всегда приходит на практике) Если ты сейчас чего-то не понимаешь, то не стоит убиваться и пытаться насильно забить себе голову. Пробуй, создавай и спустя время все встанет на свои места!
@vorontsovru270895
@vorontsovru270895 7 ай бұрын
Хорошая и чёткая подача, хороший ролик. Особенно порадовало качество звука (сорри, я немного профдеформирован в этом вопросе=)) Мне как шарповому бекендеру периодически бывает интересно как там фронты поживают, что и как пишут и тд)
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет, огромное спасибо, очень приятно)
@tahrizade
@tahrizade 7 ай бұрын
а покажи внутри реалного проекта . реалном проекте их много. хотел бы посмотреть
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Да, мне уже об этом писали. У них на оффициалтном сайте есть много примеров проектов с их методологией. Но если вдруг будет интересно, то я запишу обзор на один из таких проектов, либо попробуем сделать декомпозицию, только дайте знать)
@victorm7551
@victorm7551 5 ай бұрын
FSD не подходит по enterprise app
@СергейКатин-т2ы
@СергейКатин-т2ы 3 ай бұрын
Так и не понял, где же лежит бизнес логика? Неужели во фронте все думают только о том, как правильно файлы по папкам разложить?
@xlok1e-it
@xlok1e-it 3 ай бұрын
Привет. Бизнес логика распределяется по нескольким слоям. К примеру Features реализует бизнес-логику взаимодействия пользователя с приложением. Но например Pages отвечает только за отображение страницы, а бизнес-логика переносится на нижележащие слои
@arseniyyyyyyy
@arseniyyyyyyy 2 ай бұрын
Думаю есть альтернативный ответ на это вопрос, взял из доки, речь о сегментах: model - модель данных: схемы валидации, интерфейсы, хранилища и бизнес-логика.
@VA-tb5fy
@VA-tb5fy 3 ай бұрын
слой processes яляется устаревшим же и в документации написано, что его лучше не использовать больше
@xlok1e-it
@xlok1e-it 3 ай бұрын
Привет! Да, в закрепе об этом сказано
@alexanderpoker6655
@alexanderpoker6655 7 ай бұрын
Без обид. Но, в видео вы просто пересказали(содрали) то, что написано на первых страницах документации FSD. Смысла данного видео не понимаю.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Возможно мне стоит более подробно разобрать на примере данную методологию
@alexanderpoker6655
@alexanderpoker6655 7 ай бұрын
@@xlok1e-it, да на примере какого-нибудь мини приложения было б не плохо. В русском сегменте проектов с архитектурой не видел. Будет + огромный. Тот же самый приславутый todolist
@danil-goncharenko
@danil-goncharenko 7 ай бұрын
Нет я не веб-разработчик, но мне интерестно что тут происходит.
@АрсенШерипов
@АрсенШерипов 7 ай бұрын
В fsd папка processes устарела
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Да, ты прав. Я об это не сказал в видео. Сейчас его уже не используют
@fresonn
@fresonn 7 ай бұрын
пук-пук среньк fsd 🥱
@stasostrin47
@stasostrin47 7 ай бұрын
Мне кажется образовательные каналы надо помечать какой то меткой , которую нужно заслужить... А то очень много субъективного мнения, а плохих роликов ещё больше
@oinn6216
@oinn6216 7 ай бұрын
8:55 - "для тех кто только напичает..... может показаться сложным и непонятным" - я тебе больше скажу, я в разработке много лет и если бы я не знал эти архитектуры я бы ничего не понял из видео, особенно слово "срезы" что это вообще такое )))))
@oinn6216
@oinn6216 7 ай бұрын
А, понял, ты дословно с английского перевел slice. Не нужно так делать, нужно адаптировать слово ))) Так как в английском могут быть еще другие значения: a part or share of something, especially an amount of money
@janedow
@janedow 7 ай бұрын
Думаю даже если это не удобная стркутура, то хотя бы будет стандарт, из-за которого будет легче ориентироваться в проекте
@xlok1e-it
@xlok1e-it 7 ай бұрын
Да, каждый всегда для себя что-то найдет) Что касательно удобства - то лично для меня и для многих других фронтенд разработчиков, в том числе из крупных организаций, данная методология очень упростила поддержку проекта в долгосрочной перспективе. А так, я всегда считаю, что надо делать так, как удобно лично тебе, однако забивать на такие факторы, как поддержка и масштабируемость - не лучшая перспектива)
@atmospheric_b
@atmospheric_b 6 ай бұрын
Спасибо большое, Егор! Очень доступно о сложном
@xlok1e-it
@xlok1e-it 6 ай бұрын
Привет. Тебе спасибо за просмотр! Рад помочь!)
@vladr3022
@vladr3022 7 ай бұрын
привет, классный видос ) расскажи больше про разные виды архитектуры и архитектуры на беке, и отличается ли архитектура на react native
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет, большое спасибо!) По поводу архитектуры: в планах записать более подробное видео. Про архитектуру на бэке подсказать не могу, в данной области не специалист к сожалению) И да, FSD можно и с react native интегрировать, не проблема)
@evdokia2342
@evdokia2342 7 ай бұрын
Опа, давно хотел про fsd узнать))
@pika4u380
@pika4u380 3 ай бұрын
Что за набор иконок в vs code на превью?
@xlok1e-it
@xlok1e-it 3 ай бұрын
Привет. Это не скрин с IDE. Превью мной сделано полностью. Но иконки Material Icons, если вдруг нужно
@pika4u380
@pika4u380 3 ай бұрын
@@xlok1e-it спасибо)
@Arablinka
@Arablinka 7 ай бұрын
Было бы классно если ты бы рассказал какие есть недостатки в atomic design
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Писал об этом с своем телеграмме. Лови ссылку сразу на этот пост - t.me/xlok1e/21
@yebfudeu3313
@yebfudeu3313 4 ай бұрын
Можешь рассказать пожалуйста бро, если сделать сайт на чистом реакт используя компоненты и т.л., можно ли это назвать веб приложением?
@xlok1e-it
@xlok1e-it 4 ай бұрын
Привет! Веб-приложение это по сути лишь программа, которая выполняется на веб-сервере и доступна через браузер. Использование компонентов позволяет создавать интерактивные и динамичные пользовательские интерфейсы. Так что да)
@yebfudeu3313
@yebfudeu3313 4 ай бұрын
@@xlok1e-it спс за ответ чувак, очень помог
@dsfdsfsdfsdfsddf
@dsfdsfsdfsdfsddf 7 ай бұрын
Это с другой стороны не очевидная архитектура, вы в видео post, вынесли в виджеты, кто то выносит его в entities И еще такой вопрос, вы в виджеты вынесли отдельные блоки, но в таком случае, где будет лежать общий для всего приложения layout ? Явно уже не в виджетах, ведь он не может импортировать компоненты с собственного слоя
@uzer-124-90sdj
@uzer-124-90sdj 7 ай бұрын
user post wallet это сущности, а в коде эти сущности выглядят как компоненты, которые мы просто храним в папке entities?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Все, что отображает визуал entities мы храним в ui сегменте
@grav1tone
@grav1tone 6 ай бұрын
Чем являются entities, если мы говорим о реакт приложении? Компонентами, типами, сторами и экшенами или классами?
@Илья-э7ю9в
@Илья-э7ю9в 7 ай бұрын
А разве такие компоненты как форма для добавления поста, поле добавления комментария, а так же кнопка с лайками не уходят в фичи? По идеи они как раз отвечают за действия.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет, да. Сами инпуты являются переиспользуемыми компонентами, а уже функционал для добавления поста или написание комментария отнесем в фичи, это действия пользователя. Возможно я неточно донес свою мысль, прошу за это прощения, постараюсь быть внимательнее
@Илья-э7ю9в
@Илья-э7ю9в 7 ай бұрын
@@xlok1e-it В целом хорошо всё объяснил! Это я просто нюанс хотел уточнить)
@rexdraconis1703
@rexdraconis1703 7 ай бұрын
NX, вот где истина
@champ__champ
@champ__champ 7 ай бұрын
а nuxt какую архитектуру использует?)
@xlok1e-it
@xlok1e-it 7 ай бұрын
Я с Nuxt не работал. Но предполагаю, что FSD можно и к Nuxt адаптировать, но там могут возникнуть конфликты.
@SmallWish
@SmallWish 7 ай бұрын
А как функционально реализовать FSD? Условно у тебя в фьючерсках поставить лайк, и как ты перекинешь эту фьючерс в пропсы?
@chirkov
@chirkov 7 ай бұрын
Состояние должно лежать в Редаксе или любом другом глобальном хранилище. Например entity -> post -> model -> тут слайс редакса и работа с ним
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет! В Features твоя задача реализовать механику постановки лайка и через public api экспортировать его и использовать уже далее в проекте. FSD это методология по которой ты будешь структурировать файлы в проекте, а как ты реализуешь дальнейшую работу зависать уже от требований проекта. Если вдруг какие то нюансы вызовут трудности, то в описании есть ссылка на документацию - она очень подробная и на русском языке!)
@MaximSeleznev
@MaximSeleznev 7 ай бұрын
Очень хорошо всё пояснил! Благодарю!
@xlok1e-it
@xlok1e-it 7 ай бұрын
Большое спасибо ✊
@crypto_has_you
@crypto_has_you 20 күн бұрын
Как называется методология и является ли это методологией где следующая архитектура: 1. Components (shared), переиспользуемые (кнопки, инпуты, лэйаут) может функции с хуками ещё 2. Pages - собранные страницы, со своими папками компонентов, которые сделаны под эту страницу. У меня в чем проблема: компоненты вроде одинаковые,но вариация использования большая, то иконка добавляется в дроплист, то он мультипл ,а не соло, то модалка для создания или редактирования объекта, то такая же модалка, но только для просмотра. Пытался сделать с кучей пропсов для переиспользования, но в итоге компоненты так были переполнены функционалом, что решил идти по выше описанной методологии
@kaiju668
@kaiju668 7 ай бұрын
привет, а как называется пак иконок который в превью?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Превью я сам делал, так что пака с иконками такого нет) Но иконки взял из material symbols, может пригодится)
@oldiBerezkoo
@oldiBerezkoo 7 ай бұрын
Достойно
@xlok1e-it
@xlok1e-it 7 ай бұрын
Благодарю🔥 Заходи если что ещё посмотреть, вскоре запишу много всего интересного)
@DanilGoncharov-tl2cm
@DanilGoncharov-tl2cm 2 ай бұрын
Очень приятно слушать, все просто и понятно!
@xlok1e-it
@xlok1e-it 2 ай бұрын
Привет! Большое спасибо!
@rexdraconis1703
@rexdraconis1703 7 ай бұрын
Предлагаю такой подход: 1) applications. Тут все понятно, если у вас есть допустим форум и магазин, глупо их делать в одной app, хотя и в разных проектах тоже не всегда хорошо, ведь могут существовать множественные связи. 2)Название может быть разным, допустим Features. Отвечает за конкретный функционал: товары, заказы, корзина. 3.1)модели: понятно 3.2)data-access: сервисы, которые загружают наши модели из сервера 3.3)pages: понятно, конкретнве страниця, 3.4)components(widgets): тоже понятно. 3.5)ui (только представления, без подгрузки с сервера) 3.6) разные другие сервиса (гуарды, интерсепторы...), Могут быть перенесены на слои повыше. В общем, между этим и показанной структурой очень много схожего
@vlad9931
@vlad9931 6 ай бұрын
Видео крутое, автор молодец !
@xlok1e-it
@xlok1e-it 5 ай бұрын
Спасибо)
@kubataiupov1245
@kubataiupov1245 7 ай бұрын
Horosho razlojil po polochkam, spasibo.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Pojalusta, rad staratsya) ✊
@vovka_goodwin
@vovka_goodwin 7 ай бұрын
Слой процессов дерекейтед уже почти год)
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет! Да, мне уже об этом писали. Не упомянул об этом в видео. Хотел рассказать про все слои, так что включил его в материал
@twink7077
@twink7077 7 ай бұрын
Полезно, спасибо
@xlok1e-it
@xlok1e-it 7 ай бұрын
Всегда пожалуйста) Заходи еще посмотреть если что, вскоре запишу много всего интересного ✊
@OlegSlavgorodsky
@OlegSlavgorodsky 7 ай бұрын
Спасибо! У тебя хорошая подача материала. Полезно и для PM'ов.
@xlok1e-it
@xlok1e-it 7 ай бұрын
Всегда пожалуйста) Забегай, если что, посмотреть будущие видео) ✊
@ddflruc
@ddflruc 3 ай бұрын
Действительно хорошая подача. Вот только бы еще проверка озвученной информации была бы подтверждена реальной практикой автора канала. Пересказ доков и формальный пример минимальной сложности может привести любой))
@georgekondrashevsky3532
@georgekondrashevsky3532 7 ай бұрын
Спасибо, отличный контент, то что искал!
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет, рад, что тебе понравилось) Скоро выпущу много всего интересного, забегай ✊
@ДмитрийСитников-ш2х
@ДмитрийСитников-ш2х 7 ай бұрын
Не ну это подписка!
@xlok1e-it
@xlok1e-it 7 ай бұрын
Спасибо за поддержку!)
@astkh4381
@astkh4381 7 ай бұрын
Привет, не мог бы ты рассказать о себе в какой ты компании работаешь?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Спасибо, что поинтересовался. С недавних пор нигде не работаю. С головой ушел в контент: ютуб, телеграмм. Времени на это уходит не мало, поскольку хочу сделать качественно)
@MaverickAdd
@MaverickAdd 7 ай бұрын
О вау удачи тебе
@xlok1e-it
@xlok1e-it 7 ай бұрын
Спасибо большое ✊
@talantasanov4973
@talantasanov4973 7 ай бұрын
я вот что понял на практике, на маленьких проектах лучше не внедрять fsd😂
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет! Ты прав, в маленьком проекте может принести больше вреда, нежели пользы. С другой стороны, если в будущем на проект есть планы, то методологию можно внедрять постепенно, а не сразу)
@omak3313
@omak3313 7 ай бұрын
Processes помечены как deprecated
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет, это так. В видео забыл упомянуть. Написал об этом в закрепленном комментариии
@uzer-124-90sdj
@uzer-124-90sdj 7 ай бұрын
так авторизация это процесс или фича? На схеме у тебя auth находится в processes, а потом в примере из документации авторизация это фича
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Слой процессов устарел, об этом в закрепленном комментарии написал. Использовать его больше нерационально. Следовательно авторизация - фича.
@Grozny446
@Grozny446 7 ай бұрын
Есть для некста туториал с фсд?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет. Разработчики на сайте оставили вот такую статью - feature-sliced.design/ru/docs/guides/tech/with-nextjs. Тут как раз про конфликты FSD + Next и как их избежать
@atmalive
@atmalive 7 ай бұрын
Привет. Все четко, но совет на будущее от проф оператора - не делай 60 кдров)) ни к чему
@xlok1e-it
@xlok1e-it 6 ай бұрын
Привет, спасибо)
@ne4to777
@ne4to777 7 ай бұрын
Какая-то каша на первый взгляд. Интересно глянуть какой-нить маркетплейс с этой структурой
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет, у них на официальном сайте есть примеры различных приложений с использованием FSD, там можно глянуть)
@nan-simon
@nan-simon 7 ай бұрын
Спасибо за объяснение, только на 9:10 вопрос про дублирование UI компонентов, что если есть одна и та же кнопка в post и user. Дублировать код?
@xlok1e-it
@xlok1e-it 7 ай бұрын
Привет, спасибо за вопрос. UI-сегмент является уникальным для конкретного среза, то есть содержащаяся в нем логика не должна использовать больше нигде. Если у тебя есть одинаковая кнопка в разных срезах то она по своей сути является переиспользуемым компонентом. В крайних случаях можно дублировать логику, зависит от ситуации, но лучше максимально такого избегать
@АйдарЯлаев-ь2ш
@АйдарЯлаев-ь2ш 7 ай бұрын
@nan-simon вытащи кнопку в фитчу, если она содержит бизнес логику. Для ui компонента сущности сделай пропс типа ReactNode. И по месту использования на уровни виджета или страницы сделай композицию сущности с фитчевым пропсом.
Will A Guitar Boat Hold My Weight?
00:20
MrBeast
Рет қаралды 264 МЛН
哈莉奎因怎么变骷髅了#小丑 #shorts
00:19
好人小丑
Рет қаралды 55 МЛН
А ВЫ ЛЮБИТЕ ШКОЛУ?? #shorts
00:20
Паша Осадчий
Рет қаралды 9 МЛН
Don't look down on anyone#devil  #lilith  #funny  #shorts
00:12
Devil Lilith
Рет қаралды 3,2 МЛН
CI/CD - Простым языком на понятном примере
15:29
Артём Шумейко
Рет қаралды 50 М.
Все что нужно знать о REACT для НОВИЧКА за 15 минут | Изучаем Реакт
15:12
Frontend Fundamentals | Александр Караджиков
Рет қаралды 20 М.
АРХИТЕКТУРА FRONTEND-А FSD (FEATURE SLICES DESIGN)
19:45
ДЖАВАСКРИПТИЗЕРЫ | КИРИЛЛ ПОЗДНЯКОВ
Рет қаралды 1,8 М.
Will A Guitar Boat Hold My Weight?
00:20
MrBeast
Рет қаралды 264 МЛН