Сага о редаксе: redux-saga, Данила Дедков

  Рет қаралды 25,455

MinskJS

MinskJS

6 жыл бұрын

Мир бежит вперед, мы наращиваем сложность и уровни абстрацкий, но одновременно встречаемся с новыми вызовами. Redux-saga - это пока еще не популярный инструмент для абстрагирования сайд-эффектов в redux-приложениях. Взглянем на него поближе.
Презентация: drive.google.com/file/d/1OWak...
Данила Дедков, фулстек-разработчик в Intetics

Пікірлер: 50
@ITKAMASUTRA
@ITKAMASUTRA 5 жыл бұрын
Мне понравился доклад, спасибо!
@Titanidze17
@Titanidze17 4 жыл бұрын
О. Камасутра :) И почему в уроках о саге не слова :) Слишком часто ее просят :) Спасибо за уроки ;)
@anatoliitytarenko4926
@anatoliitytarenko4926 4 жыл бұрын
А твои где лекции по саге )?
@oleksiiborovykov6306
@oleksiiborovykov6306 4 жыл бұрын
IT-KAMASUTRA А тебе спасибо за мотивацию в пути самурая. Летим!
@lededit9761
@lededit9761 4 жыл бұрын
Когда Saga будет на уроках? Ждем ;)
@user-ni1hm8np6v
@user-ni1hm8np6v 4 жыл бұрын
Мое почтение! )) Нет на ваших курсах saga... Приходится искать самостоятельно.
@136machiner
@136machiner 5 жыл бұрын
Хорошая лекция. Простая, для первого знакомства. Спасибо!
@goshana1987
@goshana1987 3 жыл бұрын
Отличный доклад. Спасибо вам!
@rolloleon4125
@rolloleon4125 3 жыл бұрын
Спасибо за доклад)
@glebandreev2238
@glebandreev2238 6 жыл бұрын
Очень неплохо рассказывает
@con3719
@con3719 6 жыл бұрын
нормально изложил для ознакомления подробней все есть в доках
@no-thinker-1357
@no-thinker-1357 4 жыл бұрын
Жудкий доклад: - Докладчик подразумевает, что когда все данные лежат в одном месте -- это всегда хорошо. - А как же данные, которые за пределами компонента никем не используются? А бойлерплейтный код для них? - Докладчик утверждает, что Promise в redux-thunk -- это не очень удобно. - Но дальше говорит, что в redux-saga есть all и race -- это как Promise.all и Promise.race. (Ура!) - Где-то в середине прозвучало, что в сагах код не зависит от последовательности вызова методов. Это как так? - Приведенный в докладе пример тестов -- это жуть! Они зависимые!! - От первого it() зависит второй it(), от которого зависит третий it(). Жесть какая-то. - Что тестируется -- не понятно. Что был вызов того метода вызов которого выполняется в коде? Что я не идиот? - В примере с think автор обращается к API из замыкания и говорит, что это сложно тестировать. - Ну да, а чего вы хотели? Можно API положить в window, или document, тогда станет еще сложнее тестировать. - А можно использовать один из патернов инъекции зависимостей, как принято уже лет 20-30. - Выводы мягко странные: все знают, что декларативный стиль лучше императивного? Мммм... - Я не согласен, значит я вонючка, по мнению докладчика. Имхо, каждому стилю свое применение! - Архитектурные преимущества -- это по мнению автора то, что саги содержат логику, а акшены -- только экшены. - Дак и в redux-thunk все то же: логика в "санках", а акшены -- это экшены. - Вывод автора, что saga -- это очень удобный и простой инструмент. - И ни слова про жудкую нечитабельность кода на сагах. put, call итп, вместо понятных названий методов. - Ни слова про кучу бойлерплейта для локальных состояний, которые теперь переносятся в store. - Иначе, если у вас не все в store, то все "преимущества" использования rerux-saga теряются. - Удивляет 380 лайков под видео и всего 30 дислайков. Ребята и девушки, кто поставил дислайк, я хочу вас нанять! ;)
@Nikitosss91
@Nikitosss91 4 жыл бұрын
можешь посоветовать годные видосы по данной тематике, да и в целом о редаксе?
@Nikitosss91
@Nikitosss91 4 жыл бұрын
@@no-thinker-1357 ничего не понятно, но очень интересно, спасибо, будем шерстить
@MrDandeeee
@MrDandeeee 4 жыл бұрын
Большинство сделанных выводов обусловлено вашим и моим пониманием -- это обсуждать не будем. Для меня основное -- возможность писать код, который можно переиспользовать где угодно, и композировать как угодно. Сага, как инструмент дала мне такую возможность, ноль ошибок и непредвиденных ситуаций в реальных приложениях, расширение кода делается очевидно. Абстракции отделены, могу сочетать саги друг с другом и использовать производные в где угодно. Вся асинхронная работа пишется аккуратно в столбик и прекрасно отделяется для тестов. Гораздо позже этого доклада популярность приобрели хуки (custom-hooks), что еще раз показывает разумность применения таких идей, но уже другими инструментами. Буду ли использовать Саги далее? Если есть редакс -- однозначно. Опыт положительный.
@no-thinker-1357
@no-thinker-1357 4 жыл бұрын
@@MrDandeeee Дан, есть смысл обсуждать конкретные вещи. Например такие, которые были перечислены выше. Но вы их проигнорировали. И при чем здесь хуки? Не понятно! (Оставлю в скобках, что хуки придумали для тех, кто не осилил работу со state и ООП. Хотя сами хуки ни чуть не проще state!) И честно говоря не вижу какие такие идеи саг были позаимствованы в хуках? Может быть хуки позволяют откатывать многокомпонентные транзакции? Нет! Хотя сама идея такого отката хорошая. Но хорошая там, где она полезна! Имхо, работа со state понятна и прозрачна. На много понятней, чем хуки. Работа со store через redux-thunk лишена тех недостатков, которые есть в redux-saga. Имхо, в вашем докладе отсутствует честное сравнение redux-thunk и redux-saga. Поэтому я и дополнил его своим комментом. Проблема в том, что опираясь на такие нечестные доклады, другие разрабы набирают стэки из более худших инструментов/библиотек. Затем этот худший выбор трансформируется в требования в вакансиях. Что приводит к тому, что начинающие программеры становятся вынуждены осваивать более худшие инструменты. Потом они выбирают плохие инструменты для своих проектов. И круг замыкается. Дан, вызывает сомнение ваша фраза, что redux-saga дала вам "ноль ошибок и непредвиденных ситуаций в реальных приложениях". Просто будьте честнее и ваши доклады станут на порядок круче. Честно, без сарказма. Удачи в профессиональной деятельности.
@MrDandeeee
@MrDandeeee 4 жыл бұрын
​@@no-thinker-1357 если вы не увидели "честности" в моем мнении в вопросе "использовать ли redux-saga", то вот оно спустя 2+ года работы с ними. Сага -- дает более продвинутую абстракцию над экшенами как минимум уже за счет встроенных примитивов, а далее, как пользователь может писать свои. Если надо композировать или агрегировать экшены, либо чисто отделиться от эффектов -- помогут.
@user-tj3dr5se4n
@user-tj3dr5se4n 5 жыл бұрын
круто
@88catbus88
@88catbus88 3 жыл бұрын
спасибо, интересный доклад, прояснил мне в чем же таки разница между thunk и saga
@mikaelgevorgyan4521
@mikaelgevorgyan4521 3 жыл бұрын
Ой Господи уж лучше удалят этот редакс с этими остальными и сделают,что нибудь нормальное!
@mikaelgevorgyan4521
@mikaelgevorgyan4521 3 жыл бұрын
Говорит,что будет функции выглядеть чистыми=)))!А он сам видел в какой ад превращаются эти функции хуже чем верстать и делать работу на обычном css html js!!!Я как увидел какие коды показывает глаза осинели!Что это за бифштекс и песли прибавить к этой функции ещё много чего с тегами.Это уже будет не просто.=))
@AndrewDevUA
@AndrewDevUA 4 жыл бұрын
Абрамов Даниил, если что)
@KPACIBO_UA
@KPACIBO_UA 2 жыл бұрын
Как сделать такую мышку ?(как на слайдах когда он водит)
@katyamelnyk4321
@katyamelnyk4321 5 жыл бұрын
6:51 Action или правильно action creator?
@MrDandeeee
@MrDandeeee 5 жыл бұрын
action creator -- это техническая деталь, фокусироваться на ней нет смысла. Примерно как во фразе "Создать инстанс класса" вы будете еще упоминать о вызове конструктора.
@pavelalekseev5849
@pavelalekseev5849 4 жыл бұрын
Action - объект (с type), а action creator - функция, которая возвращает action
@pelid80
@pelid80 5 жыл бұрын
Есть другая точка зрения - доклад о redux-saga с FrontendConf 2017 kzbin.info/www/bejne/hJWXoaWui5don5I .
@user-vv6jx8qg4v
@user-vv6jx8qg4v 3 жыл бұрын
Боже, что за ацтой в документации в 100 раз понятнее и лучше написано
@danielrosenberg570
@danielrosenberg570 6 жыл бұрын
блин очень нужная и полезная лекция для новичков, но слушать невозможно просто. Такие паузы, что создается ощущение, что автор не в теме. однако вроде бы это не так.
@Flame2201
@Flame2201 6 жыл бұрын
speed 1.5
@MrDandeeee
@MrDandeeee 5 жыл бұрын
дело в том, что я предпочитаю делать паузы для того, чтобы слушатели успевали за мыслью или идеей.
@inapik
@inapik 4 жыл бұрын
Боже же ты мой, это называется программированием... там где-то в библиотеке что-то происходит, а что там происходит..... да кто его знает. Код в столбик писать надо, а не в строку....
@vladvladov4095
@vladvladov4095 3 жыл бұрын
Хааарк тьфу! Нудятина...
Эффект Карбонаро и нестандартная коробка
01:00
История одного вокалиста
Рет қаралды 8 МЛН
How Many Balloons Does It Take To Fly?
00:18
MrBeast
Рет қаралды 154 МЛН
Became invisible for one day!  #funny #wednesday #memes
00:25
Watch Me
Рет қаралды 59 МЛН
Чего ожидать от HTTP/3 + Go
51:07
Нина Пакшина
Рет қаралды 3 М.
Vite and Module Federation Makes Micro-Frontends EASY!
27:36
Jack Herrington
Рет қаралды 84 М.
Redux Async: Saga vs Thunk vs Observable
25:04
Frontend & Backend
Рет қаралды 10 М.
React и Redux 2. Подключаемся к Redux.
26:58
knowcity
Рет қаралды 48 М.
Зачем ЭТО электрику? #секрет #прибор #энерголикбез
0:56
Александр Мальков
Рет қаралды 617 М.
Look, this is the 97th generation of the phone?
0:13
Edcers
Рет қаралды 3,2 МЛН
Что не так с раскладушками? #samsung #fold
0:42
Не шарю!
Рет қаралды 195 М.