Live-coding: Чистая архитектура во фронтенде / Александр Беспоясов

  Рет қаралды 24,009

Podlodka

Podlodka

Күн бұрын

Понравилось видео? Забирай весь плейлист на is.gd/kChYnl или купи билет на следующий сезон конференции is.gd/f6ZLuS.
Ссылки и дополнительные материалы: bespoyasov.ru/...
Твитер для связи: / bespoyasov
TDD: зачем и как
Ссылки и дополнительные материалы: bespoyasov.ru/...
Расшифровка доклада: bespoyasov.ru/...
Твитер для связи: / bespoyasov

Пікірлер: 22
@marksalabutin621
@marksalabutin621 3 жыл бұрын
Спасибо за доклад, очень приятно наблюдать за тем, как зрелые практики software design проникают во фронтенд. Отдельно улыбнул момент на 1:01:36 , когда Александр говорит, что createOrder это чистая функция и что она с одинаковыми параметрами всегда возвращает одинаковый результат, а там используется new Date().
@bespoyasov
@bespoyasov 3 жыл бұрын
Да, я потом тоже это заметил, стало стыдно 😅 В статье по мотивам доклада я это поправил. Да и вообще написал в ней всё, что не успел рассказать за эти полтора часа 😃
@eugeniabashieva2536
@eugeniabashieva2536 2 жыл бұрын
Респект Александру за крутой доклад. Наконец-то увидела человека, который думает об архитектуре фронтенда. Обычно приходишь на проект, а там данные из бэкенда напрямую в представление отдаются. И когда говоришь, надо бы как минимум прослоечку в виде data mappera добавить народ вообще не понимает зачем.
@leonidpetrov14
@leonidpetrov14 3 жыл бұрын
Очень круто и понятно! Блог докладчика вообще от боженьки просто!
@tarassavchenko2317
@tarassavchenko2317 3 жыл бұрын
У Саши оооочень крутые доклады)
@kulakofft4
@kulakofft4 2 жыл бұрын
вместо алиаса можно использовать User['id'], ещё более наглядно на мой взгляд
@artem_r
@artem_r 3 жыл бұрын
Спасибо за великолепный доклад! Небольшой вопрос касательно 51:34 - разве мы не хотим держать юайный фреймворк реакт за пределами нашего приложения? А то получается что мы завязываемся на конкретную реализацию пользовательского интерфейса. Еще немного не понятно чем обусловлено создание именно хуков - в примере не используются возможности хуков, и по сути получается это простые функции с названием содержащим use?
@bespoyasov
@bespoyasov 3 жыл бұрын
Хотим! Именно поэтому я делаю оговорку, что в каноническом исполнении функция юзкейса была бы вынесена за пределы хука, а сервисы были бы переданы юзкейсу через последний аргумент или с помощью DI. Я также написал об этом подробнее в Readme к исходникам и в посте в блоге по мотивам доклада. Хук там по двум причинам: 1. Доступ к стору можно получить только через хук, потому что в качестве стора используется React.Context + хуки. 2. Чтобы показать, что хуки - не помеха 😃 Юзкейс вполне можно было бы использовать и без хуков напрямую, если бы он использовал только сервисы, которые предоставляются без хуков. Но и сейчас хук можно использовать просто как обёртку для юзкейса, который можно вынести и использовать изолированно.
@ddushkin
@ddushkin 3 жыл бұрын
Ээээ. Ссылки в описании к докладу автора про TDD, а не к этому.
@igor_cojocaru
@igor_cojocaru Жыл бұрын
Вместо type Order = { ..... user: UniqueId; }; обычно пишу: type Order = { ..... user: User['id']; };
@dmitrybogo8784
@dmitrybogo8784 3 жыл бұрын
Интересный доклад. Спасибо! В докладе упоминалось про микрофронтэнд и webpack federation. Этот стрим уже вышел? Не могу найтию Спасибо!
@ddushkin
@ddushkin 3 жыл бұрын
Микрофронтенд - это развлечение для команды, где есть 2-3 выделенных человека только про инфру. То есть это не нужно примерно никогда)
@dmitryivanov6812
@dmitryivanov6812 2 жыл бұрын
Спасибо за доклад! Хотя видел уже его фрагменты на просторах Инет, но от первого лица всегда интереснее слушать. ;) Вопрос к автору. Все моменты связанные с проектированием так или иначе завязаны на время, а также на возможные пробы и ошибки... Что если "практически все", включая сам домен и бизнес-логику, уже реализовано на backend, а от frontend требуется только "красиво показать данные" и предоставить "набор кнопок" для запуска каких-то процессов на бэке (только UI!). Стоит ли тогда вообще "городить весь этот огород", если "модель фронта" это просто "зеркало", какой-то части "модели бэка"? Где поставить тут "точку баланса", чтобы не переписывать уже готовые "части бэка", например, ту же валидацию, и удобным/современным/функциональным фронтом?
@bespoyasov
@bespoyasov 2 жыл бұрын
Спасибо! :-) Если вся бизнес-логика на бекенде, фронтенд может без проблем превратиться в «интерфейс» к сервису без сложной архитектуры и логики. Точка баланса - в пересечении между ресурсами, которые проект готов потратить, требованиями от приложения и необходимости в сложном клиенте. Если от клиента требуется только показать несколько кнопок и по нажатию отправить команды в API, вероятно, это будет оверхедом. (Даже Реакт не особо будет нужен.) Если в приложении бекенда нет, логика есть, данные хранить как-то надо, а пользовательские сессии продолжительны, будет смысл позаботиться об архитектуре заранее.
@TheSky5028
@TheSky5028 Жыл бұрын
чел ты ваще про бекенд слышал? все что тебе надо на фронте это получить данные с бека и отрисовать, платежи у него блять на фронте
@vanyamaloy9170
@vanyamaloy9170 Жыл бұрын
Так он говорит что платежи на бэке обрабатываются и то что пример игрушечный Используя интерфейс он защищает себя от изменений который могут произойти потом. Плюс спокойно может тестировать свое приложения не имея зависимости от реального сервиса платежей
@pashkes
@pashkes 3 жыл бұрын
Какая то спешка чувствуется, как будто за спиной кто то стоит и подгоняет
@ivanjs7675
@ivanjs7675 2 жыл бұрын
возьмите feature-sliced и успокойтесь! хватит придумывать свое! потом приходишь в такой проект и мучаешься
@bespoyasov
@bespoyasov 2 жыл бұрын
О feature sliced в докладе упоминается. К тому же доклад о том, как воспринимать концепт «Чистой архитектуры», а не о том, «как буквально писать код».
@6602-w2k
@6602-w2k Жыл бұрын
feature sliced говорит как раскладывать код по папочкам, не более
@АлексейСтупников-д4у
@АлексейСтупников-д4у 2 ай бұрын
к сожалению, fsd не серебрянная пуля. искусственное разделение кода на entities/features нарушает паттерн low coupling/high cohesion. и есть неопределенность в том, что считать фичей, а что сущностью. есть ещё другие вопросы. сейчас склоняюсь к использованию fsd не в чистом виде, а в виде модификации
Vue.js Modular Architecture
11:48
Sanjar Mirakhmedov
Рет қаралды 50 М.
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 96 МЛН
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 96 МЛН
Clean Architecture in TypeScript
58:19
Donny Roufs
Рет қаралды 26 М.
This is the Only Right Way to Write React clean-code - SOLID
18:23
Реакт продвинутый (Тёма Сенюков)
2:53:06
Young&&Yandex: фронтенд-разработка
Рет қаралды 34 М.
How Many Balloons To Make A Store Fly?
00:22
MrBeast
Рет қаралды 96 МЛН