Java. Разбираемся с монадами.

preview_player
Показать описание
В этом видео я объясняю на примерах монады, и какая польза от них для Java разработчика. Разбираем что такое монады, как они устроены и для чего применяются. Упор делается на практическую сторону вопроса.

Исходные коды:

Поддержать канал на Boosty:

Наш чатик в Telegram:

#arhitutorialsjava #ityoutubersru
Рекомендации по теме
Комментарии
Автор

Спасибо за отличное объеснение! Хотелось бы еще больше видео на эту тему

ZamalSpace
Автор

Самое понятное объяснение монад, так держать!)

sd-df
Автор

Офигеть! Очень надеюсь дойти до такого уровня, чтобы писать подобные штуки. Спасибо огромное!

Irina-cwlw
Автор

Отличный контент! Спасибо! Повседневно использую Optional, но не думал о нём как о монаде.

Skaiiur
Автор

Проще говоря монады - это шаблон проектирования, когда есть обёртка для значений, функция оборачивания, и функция маппинга обёрнутых значений(flatMap в данном случае). Всё остальное это нюансы применения. Стримы, флаксы, опшиналы применяют этот шаблон - поэтому название у всех на слуху. Сложность обычно вызывает потому что всё сразу сваливают в одну кашу 🙂

alftrd
Автор

Очень интересно, как вам идея сделать видео про асинхронное программирование в Java?

RenderDragon
Автор

Спасибо! Норм объяснил, многое стало на место. Снимай исчо!

olegshirko
Автор

17:21 содержимое flatMapSingle (contacts -> andThen(Single.defer(() -> {...}))

mtifhtn
Автор

Вау, спасибо. Прям на пальцах все разложено. Эх, хотелось бы погрузиться в теорию, но куча отговорок мешает)

Николай-хбф
Автор

Спасибо за полезный урок! Для переименования нескольких переменных попробуй shift + F6

simplename
Автор

Вот теперь стало понятнее, что билдер и монада не одно и то же )

EEEppt
Автор

Что только джависты не придумают, что бы Котлином не пользоваться! :)

Libraby
Автор

5:06 flatMap понятный метод, ясно что получает параметром Function и возвращает результат работы этой Function, но с методом map, который внутри себя вызывает flatMap появляется вопрос -- что в этом случае есть val на строке 27? откуда возьмётся эта переменная?

kosbarable
Автор

Такой вопрос. Не совсем понятен смысл именно метода flatMap. Почему нельзя просто в методе map создать и вернуть новую монаду без дополнительного шага с созданием функции которая создаст монаду во flatMap?

конкретнее, на 5:00 в 27 строке заменить
return flatMap(val -> new Monad<>(mapFunc.apply(val)));
на
return new

darkyver
Автор

монада с Optional похожа на Maybe из RxJava - и когда первый раз работаешь с Rx и код перестает работать, в том, смысле, что код запустился и ничего не произошло - это выносит мозг

Eduard.Kardashov
Автор

Анекдот чуть более закрученный на самом деле
Летят Холмс с Ватсоном на воздушном шаре. И спят в полете. Просыпаются
над какой-то незнакомой землей, видят - внизу какой-то хрен коров пасет. Хотят узнать куда они прилетели.
Снизились они и спрашивают мужика:
- Скажите, сэр, где мы находимся?
- На воздушном шаре.
- Спасибо, сэр! - и летят вверх. Холмс задумчиво говорит:
- Ватсон, мы в Росиии!
- Холмс, а с чего вы взяли, что мы в России?
- Это элементарно! Во-первых, он долго думал над ответом. Во-вторых, его
ответ был абсолютно точен. И в третьих - абсолютно бесполезен!
Значит это был програмист. А только в России программист может работать пастухом.

andreymanankov
Автор

Услышал про монады сразу подумал про Haskell.

DHARMA
Автор

Хотел бы увидеть обзор на плагин Advanced Custom Fields

maksimrus
Автор

А если в Lazy я хочу также и Option, есть какое-то объединение монад? Т.е. пример не совсем практический.

dzianishrip
Автор

Кто, интересно, первый решил, что надо монадный метод называть flatMap? Flat это flattening, уплощение. Когда был список списков списков, а стал просто список.
В Хаскеле есть понятие Functor, что, в общем, по сути, монада, и такая функция называется там называется fmap. 'F' от Functor, а не от flat.
Здесь, подозреваю, кто-то что-то однажды неправильно услышал, понял, додумал, а теперь все повторяют.

ДаниилМонахов-рч