RxJava Flashcards

1
Q

Какой класс предпочтительно использовать использовать для тестирования RxJava?

A

TestSubscriber

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какие преимущества дает TestSubscriber по сравнению с традиционным тестированием?

A

Традиционный подход - упускает одно из самых больших преимуществ RxJava - обработка событий в отдельных потоках.
RxJava поставляется с классом TestSubsriber, который позволяет нам писать тесты, которые работают с асинхронной обработкой событий.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое RxJava

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Какие свойства есть у Библиотеки RxJava?

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

-Расширяемость
RxJava может быть расширена пользовательскими операторами.

-Декларативность
Функциональные трансформации обьявлены декларативно.

-Компонуемость
Операторы в Rx легко компонуются, чтобы проводить сложные операции.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Когда следует использовать Rx?

A

Rx применяется для составления и обработки последовательностей событий.

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

  • UI события, такие как mouse move, button click
    События вроде изменения свойства, обновления коллекции, «Заказ оформлен», «Регистрация закончена» и т.д.
  • Инфраструктурные события (сообщения от системы, WMI или файловых менеджеров)
  • Интеграция с событиями от шины сообщений (message bus), сообщениями из WebScoket API
  • Интеграция с CEP-системами (StreamInsight, StreamBas)
  • Результат Future или похожего паттерна
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Когда не следует использовать Rx?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Основные типы RxJava?

Какие типы добавили в RxJava2?

A

Signle, Observable и Observer, Flowabble,Subjects и Processors, Subscriber и Subscription, Maybe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Как RxJava 2 обрабатывает Null

A

RxJava 2.x больше не приемлет значения NULL, и следующий код приведет к немедленному получению NullPointerException, или Emitter(порождающий поток) выбросит onError-событие.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

В чем разница между Observable и Flowable?

A

Observable — класс без покрытия backpressure, а Flowable наделен backpressure. Backpressure(Обратное давление) — явление, которое можно встретить в порождающем потоке, где некоторые асинхронные операции не могут обрабатывать значения достаточно быстро и нуждаются в замедлении работы производителя.
когда юзать Observable

Observable -В тех кейсах, когда у вас в итерации, не более 1000 элементов. В остальных flowable

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Какой тип хорошо подходит для обработки одиночного сетевого запроса?

A

Signle

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Что делает unsubscribe? Когда его применять?

A

Вызов unsubscribe остановит поступление событий в observer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Что делает Observable.interval?

A

Эта функция создаст бесконечную последовательность значений, отделенных заданным интервалом времени.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что делает Observable.range?

A

Выдает значения из заданного диапазона.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Можно ли применять unsubscribe к Single? Почему

A

Да т.к. неизвестно когда Single получит результат.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly