Василий Прокофьев — разработчик Usetech в Рязани. На Java Meeting Point он расскажет о своем опыте использования реактивного программирования.
В этом интервью Василий поделился некоторыми деталями доклада и объяснил, почему подход, о котором пойдет речь, заслуживает внимания.
На Java Meeting Point ты расскажешь о реактивном программировании. Расскажи, почему ты выбрал именно такую тему?
Мы многому научились на проекте с реактивным программированием, и мне хотелось поделиться своим опытом — как трудностями, с которыми мы столкнулись, так и радостями от использования этого подхода. Азы освещены в интернете неплохо, а вот более сложные вещи найти уже сложно. В некоторых вопросах мы разбирались целой командой, и думаю, такой опыт будет полезно передать.
Я приготовил примеры кода, на которых покажу разные тонкости реактивного программирования. Старался доклад подготовить так, чтобы понятно было каждому — нужны только базовые знания функционального программирования, Java Core и Java 8.
Чему научатся участники конференции после твоего доклада?
Участники познакомятся с реактивным программированием на Java, научатся базовым навыкам работы с Рroject Reactor, а также разберутся с базовыми методами библиотеки.
Почему ты заинтересовался реактивным программированием?
Сейчас все чаще требуется большая нагрузка на сервера, а из-за того, что подходы к их разработке устарели, синхронный многопоточный способ разработки приложений подразумевает очень много накладных расходов и простоя машин. Реактивное программирование представляет собой удачную альтернативу.
Когда я только начинал вливаться в эту тему, читал, как сделать сервер для Minecraft на домашнем слабеньком компьютере. И получалось, если делать его стандартным способом, с помощью синхронного программирования, на сервер могли зайти 4 человека. При реактивном подходе 1,5 тыс. человек могли спокойно работать на этом сервере, и еще куча ресурсов оставалась на компьютере.
А еще эта тема очень активно используется у нас на проекте для банка, входящего в топ-3 по России. И реактивное программирование мы используем повсеместно: у нас могут проходить тысячи транзакций в секунду, и стандартным способом очень тяжело обработать такой массив информации.
В каких проектах нужно реактивное программирование?
Нужно помнить, что реактивное программирование создает и достаточно много проблем: сложности появляются при дебаге кода, при отлове ошибок и так далее. Поэтому, если проект маленький, то смысла делать его на реактивных рельсах нет. Зато, если вам требуется большая пропускная способность запросов, либо нужно обрабатывать действительно большие данные, этот подход будет как нельзя кстати.
Присоединяйтесь к конференции — регистрация открыта на сайте.