3.0Kпросмотров
18 ноября 2024 г.
Score: 3.3K
Друзья, всем привет! На прошлой неделе выступил на конференции HolyJS, рассказывал опять про FSD. В прошлый раз я получил много комментариев, что FSD плох, но за эти пол года методология претерпела изменения, а за день до выступления вышла минорная версия 2.1. Идея доклада была рассказать о новых вещах в FSD через проблемы, но к сожалению все опять подумали, что в FSD ничего не меняется, одни проблемы 😁 Я считаю что у каждого инструмента есть недостатки, и рассказывать о том, как работать с инструментом через решение проблем намного интереснее. О чем рассказывал? 1️⃣ Разбирал запрет кросс-импортов и как с ними работать через инверсию зависимостей и фичу @x, которая так и называется, публичное API для кросс-импортов (появилась в 2.1). 2️⃣ Про размазывание кода, когда мы сразу пытаемся все раскидать по всем слоям. Тут решение достаточно тривиальное - использовать local-first стратегию и не заниматься преждевременной декомпозицией. Даже если явно можно выделить сущность или фичу, не стоит ее сразу выносить в глобальный неймспейс, если она используется в одном месте. Вполне нормально, если фичи будут жить прямо в слайсе связанной сущности. 3️⃣ Про субъективное понимание слоев и почему все используют FSD по своему. Рассказал про page-slice подход (он появился в 2.1 и называется page-first), который меняет ментальное восприятие, как мы используем FSD. В этом подходе мы начинаем разработку от страниц и виджетов (а слои сущностей и фичей вообще первое время не используем). В связи с этим у методологии сейчас появилось два разных подхода, которые можно использовать (проектирование от сущностей VS от страниц). Какой способ выбрать, может зависеть от типа клиента (тонкий или толстый) и понимания полноты домена предметной области. 4️⃣ Про инфраструктурные сущности (мы у себя ввели кастомный слой shared/services) и как можно расширять методологию (новыми слоями и вертикально через домены). А так же рассказал про главную на мой взгляд проблему в методологии, из-за которой многие начинают использовать FSD неправильно - документация и отсутствие хороших примеров. Но не все так плохо, как может показаться. Документация хоть и медленными шагами, но переписывается и пополняется новыми туториалами. А еще кортима активно работает над архитектурным линтером steiger (недавно был релиз версии 0.5.0), который помогает избежать целого ряда проблем на старте (той же преждевременной декомпозиции). Запись я думаю выложат уже в новом году, обязательно скину ее в канал, а пока можете 👉 посмотреть слайды и 👉 поизучать дополнительный материал.