Введение В Rxjava: Почему Rx?



Введение в RxJava: почему Rx?

Цель этой серии статей — познакомить начинающего реактивного программиста с возможностями библиотеки.

RxJava — реализация принципов реактивного программирования для JVM. Это перевод обширного руководство от RxJava Криса Фруссиоса на основе ИнтроТоркс для Rx.NET. Это руководство не требует от вас каких-либо знаний в области реактивного или функционального программирования, однако предполагается, что у вас есть базовые знания Java. Материал в этих статьях предназначен для прочтения от начала до конца.

Его объем больше, чем у обычного учебника, но меньше, чем у настоящей книги.

Мы начнем с самых основ и будем переходить от раздела к разделу к более сложным сценариям и концепциям.

Каждый раздел был разработан так, чтобы быть самодостаточным и кратким, чтобы к нему можно было вернуться в будущем.

Примеры Эти материалы доступны в двух формах:

  1. Примеры с консольным выводом (рекомендуется для тех, кто читает впервые)
  2. Примеры самотестирования в форме Юнит тесты


Содержание:


Часть первая – Введение: Почему Rx?

Пользователи ожидают данных в реальном времени.

Им нужны твиты Сейчас .

Подтверждение заказа Сейчас .

Им нужны цены на Сейчас .

Как разработчику вам нужны сообщения, адресованные самим себе.

Вы не хотите, чтобы вас заблокировали в ожидании результата.

Вы хотите, чтобы результат пришел к вам, когда он будет готов.

Более того, с результатом хочется работать по частям: не хочется ждать, пока он загрузится.

Все перед отображением первой строки.

Мир перешёл в режим уведомлений.

У разработчиков есть инструменты для оповещения, это легко.

Им нужны инструменты для реагирования на уведомления.

Добро пожаловать в Rx. Rx — мощный инструмент, позволяющий решать проблемы в элегантном декларативном стиле функционального программирования.

Rx имеет следующие преимущества:

  • Интуитивность
    • Действия в Rx описываются в том же стиле, что и в других библиотеках, вдохновленных функциональным программированием, таких как Java Streams. Rx позволяет использовать функциональные преобразования в потоках событий.

  • Расширяемость
    • RxJava можно расширить с помощью пользовательских операторов.

      Хотя Java не позволяет вам сделать это элегантным способом, RxJava предлагает всю расширяемость, доступную в реализациях Rx на любом другом языке.

  • Декларативность
    • Функциональные преобразования объявляются декларативно.

  • Компонуемость
    • Операторов в Rx можно легко собрать для выполнения сложных операций.

  • Конвертируемость
    • Операторы в Rx могут преобразовывать типы данных путем фильтрации, обработки и расширения потоков данных по мере необходимости.



Когда следует использовать Rx?
Rx используется для составления и обработки последовательностей событий.

Следует использовать Rx

  • События пользовательского интерфейса, такие как перемещение мыши, нажатие кнопки.

  • Такие события, как изменение свойств, обновление коллекции, «Размещение заказа», «Регистрация завершена» и т. д.
  • События инфраструктуры (сообщения от системы, WMI или файловых менеджеров)
  • Интеграция с событиями из шины сообщений, сообщениями из WebScoket API
  • Интеграция с системы КЭП (StreamInsight, StreamBas)
прием возможен
  • Результат Будущее или аналогичный узор
Rx не следует использовать
  • Превратить Iterable в Observable просто для работы с ними через библиотеку Rx.
В следующая часть Мы рассмотрим фундаментальные типы, на которых основана концепция реактивного программирования: Observable и Observer. Теперь у проекта есть свой паблик репозиторий и любой желающий может присоединиться к созданию углубленного русскоязычного туториала по Rx. Перевод эта часть уже есть, остальные скоро появятся, а с вашей помощью еще быстрее.

Теги: #перевод #rxjava #Реактивное программирование #reactivex #java

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.