Похожие презентации:
Reactive Extensions или Rx
1.
RX. NET2.
Reactive Extensions или Rx (по аналигии с PFX) или“реактивные расширения” – это библиотека, точнее набор
библиотек, которые позволяют работать с событиями и
асинхронными вызовами в композиционном стиле, в т.ч.
через Linq.
Цель этого фреймворка – помочь разработчикам
писать код в котором фигурирует асинхронное
взаимодействие.
3.
Rx был создан в Microsoft DevLabs. На данный момент,фреймворк поддерживает .Net 3.5SP1, .Net 4RC, Silverlight 3 и
JavaScript.
Rx состоит из двух базовых абстракций в пространстве имен
System начиная с .NET 4.0, а
именно System.IObserver и System.IObservable.
4.
ОСОБЕННОСТИ• Rx библиотеки заточены на асинхронную обработку без блокировки обработки данных.
• Rx предлагает простой API с выделенными каналами для передачи данных, ошибок
и сигнала об окончании потока данных.
• В Rx библиотеках есть больше сотни операторов, которыми можно обрабатывать потоки
идущие к подписчику. Операторы можно собирать в цепочки, т.е операторы
composable.
• В некоторых реализациях RX, например, RxJava2, хорошо поддерживается backpressure,
т.е. ситуация, когда продюсер выдает данные быстрее, чем подписчик может
обработать.
• Для Rx messaging не нужно поднимать специальные серверы. Все включено в код вашего
приложения.
• В языках, которые поддерживают multi-threading, работа со threads упрощается, как
и переключения с одних threads на другие. Разработчики на Андроиде — это оценят, ибо
там вывод на экран всегда должен выполняться main thread, а вычисления — другими.
5.
IOBSERVER <IN Т>• Предоставляет механизм получения уведомлений. Интерфейс объявляет
три метода:
• void OnNext(T value) — предоставляет следующий элемент в
последовательности.
• void OnError(Exception ex) — позволяет передать Exception и адекватно
его обработать. Подразумевается, что после этого сообщения
последовательность заканчивается и наблюдателям больше не нужно
следить за изменениями.
• void OnCompleated() — сообщается, что последовательность
закончилась и больше не будет новых сообщений, не нужно их ожидать.
6.
IOBSERVABLE<OUT Т>• Производит уведомления и позволяет подписываться наблюдателям.
Объявляет один метод:
• IDisposable Subscribe(IObserver<Т> observer) — принимает наблюдателя
(IObserver) параметром и подписывает его на сообщения. Обратите
внимание, что метод возвращает IDisposable, с помощью чего можно
потом вызывать метод Dispose, тем самым отписав и уничтожив
наблюдателя.
7.
В отличии отинтерфейсов IObserver<T> и IObservable<T>,
которые находятся в сборке System.Observable,
классы Observable и Observer находятся в
сборке System.Reactive, являются статическими, и
главной их функцией являются LINQ-образные
расширения для Rx.
8.
Rx также очень хорошо подходит длявведения и управления параллелизмом с
целью разгрузки . То есть выполнение заданного
набора работ одновременно для освобождения
текущего потока. Очень популярное
использование этого - поддержка адаптивного
интерфейса.
9.
ПОДДЕРЖИВАЕМЫЕ ЯЗЫКИ• JavaScript
• Java
• C++
• Python
• Ruby
Программное обеспечение