Монады — абстракция или костыль?
Во время этого доклада мы постараемся разобраться, что же такое монада и стоит ли внедрять их в код при каждом удобном случае. Особенно актуальным этот вопрос становится с введением лямбда-выражений в Java 8.
Для начала мы рассмотрим традиционное математическое определение монады и составим ему аналогичное, но родное, на Java. Затем мы сконструируем простенькую монаду Promise для представления результатов асинхронных запросов. Этот код поможет нам решить ряд вопросов про монады, изучить их законы, и понять позволяет ли Java 8 создание полноценных монад и, самое главное, зачем? Может вы уже вовсю пользуетесь монадами, не подозревая того?
P.S. Чтобы насладиться докладом необязательно знать хаскели и прочую математическую базу.
Разработчик Java и непереводимый developer advocate в ZeroTurnaround. Когда не занимается написанием javaagent-ов или, к слову, тестов, пишет в блог RebelLabs или выступает на конференциях типа JavaOne. В свободное пытается продвигать науку в Тартуском университете, изучая проблемы динамических обновлений программ.
Презентация
Видео
Все доклады