Тёмный

Дмитрий Махнёв Артём Кобзарь - (не|ну)жная монада Either на практике и в теории 

HolyJS
Подписаться 29 тыс.
Просмотров 10 тыс.
50% 1

Ближайшая конференция - HolyJS 2024 Autumn, 7 ноября (online), 14-15 ноября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/K18Cxd
- -
. . Обработка ошибок в JavaScript - один из самых спорных вопросов. Почти на каждой конференции предлагают новые архитектуры и паттерны для решения этой проблемы. Разбираясь в предметной области, часто наталкиваешься на слово на букву «М». Артём и Дмитрий расскажут об опыте и причинах внедрения монад в продакшн.

Наука

Опубликовано:

 

12 апр 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 6   
@user-md5mw1tp3e
@user-md5mw1tp3e 4 года назад
Это один из самых крутых и важных докладов, которые я когда либо видел.
@SubV13
@SubV13 4 года назад
Ссылки на упомянутые доклады: 1. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-bJ3glfA-jqo.html 2. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-9s_4wpzENhg.html
@ruChode
@ruChode 4 года назад
^_^
@monfrid
@monfrid 2 года назад
Круто!
@konstantinchernyaev3011
@konstantinchernyaev3011 Год назад
Доклад хороший, но нужно снять розовые очки Вижу очевидную проблему - перегруженность: Представим, что нам нужно поочереди обработать 3 запроса, где 1 зависит от 2, а 2й от 3го (их может быть больше) Что мы получим? +пару десятков строк проверок, что результат 1 не ошибка, что результат 2 не ошибка и результат 3 не ошибка. Для избегания этого и придумали try catch, разве нет? Решение проблемы разделения ошибок и исключений простейшая - завести класс внутренних ошибок и метод, который перепрокидывает ошибку, если это не внутренняя ошибка. Проблема с типизацией отпадает если задать вопрос "Зачем она нужна?". Тип данных нужен для обработки данных. Если обрабатываешь данные, то нужно знать какая это конкретно ошибка, иначе получится error: Error1 | Error2 | Error3 и всё еще нужен будет instanceof. Если это любая ошибка, то типа базового типа ошибки будет достаточно. Логирование - сделай функцию logAndThrow(e) или tryOrLog(() => {throw})
@dzhabulya
@dzhabulya Год назад
Монады позволяют как раз таки сначала полностью обработать позитивный flow. Далее отдельно обрабатывать ошибки. Если позитивный флоу не выполнится, сразу перейдем к ошибкам. Я к сожалению не могу ссылку на playground прикрепить потому что ссылки обрезаются. Каким образом вам try catch поможет избежать проверок на ошибку? В случае если не получился первый запрос, сделать throw ? Ну у вас будет пару десятков строк проверок. Если не выполнился первый запрос, выброси ошибку, иначе идем дальше. Если не выполнился второй запрос, выброси ошибку, иначе идем дальше. Только вот в catch вам придет unknown и вы понятия не имеет что вам нужно обработать
Далее
Crazy Girl destroy RC CARS 👩🤪🚘🚨
00:20
Просмотров 2,8 млн
Using Either to structure your validations
15:49
Просмотров 6 тыс.
Чего ожидать от HTTP/3 + Go
51:07
Андрей Роенко - WebAssembly без купюр
1:00:47
Урна с айфонами!
0:30
Просмотров 7 млн
ПОКУПКА ТЕЛЕФОНА С АВИТО?🤭
1:00