- Hands-On Reactive Programming with Python
- Romain Picard
- 363字
- 2021-06-24 18:25:12
Introduction to ReactiveX and RxPY
ReactiveX is a library which aims to make asynchronous programming easy. As the header of the project's website says, it is: The Observer pattern done right
. ReactiveX is a library based on the idea of observable streams. A stream is an entity that emits zero, one, or several items, over a period of time. This stream of items can be observed by other entities that are interested in receiving these items and manipulated by them. This simple idea is the basis of what has become an incredibly successful way of doing asynchronous programming.
As said in the very first paragraph of this book, asynchronous programming is a very active field. ReactiveX is a typical example of technologies that did not exist a few years ago but that are now heavily used. It was originally one of the components of the Volta project at Microsoft. This project consisted of a set of developer tools to help with developing client and server parts of web applications. The Volta project was suspended in 2008 but ReactiveX continued to be developed, up to the point when it was publicly released for the .NET platform in 2010. The library was very successful, with a community starting to grow up and big companies such as Netflix and GitHub using it. In 2012, implementations for .NET, JavaScript, and C++ were published as open source projects. Since that time, ReactiveX has even impacted the standardization of some programming languages. ReactiveX now has official implementations for almost 20 programming languages and was the foundation of the Java reactive streams (http://www.reactive-streams.org) standard and the EcmaScript observable (https://github.com/tc39/proposal-observable) API. Nowadays, many other libraries, heavily inspired by ReactiveX, are available for virtually any programming language.
All of this is based on concepts that have already existed for many years, such as the observer design pattern, the iterator design pattern, and some principles from functional programming. The ingenuity came from combining them in such a way that it avoids the callback hell. Even better, it is equally suited for frontend applications that deal with user events and GUI widgets, and backend applications that work with network and database requests.
- Designing Purpose:Built Drones for Ardupilot Pixhawk 2.1
- 阿里云數字新基建系列:云原生操作系統Kubernetes
- 嵌入式操作系統(Linux篇)(微課版)
- 網絡操作系統教程:Windows Server 2016管理與配置
- Fedora 12 Linux應用基礎
- 基于Arduino的嵌入式系統入門與實踐
- 大規模Linux集群架構最佳實踐:如何管理上千臺服務器
- C#實用教程(第2版)
- Android Telephony原理解析與開發指南
- Windows 10從入門到精通
- 操作系統實用教程
- 操作系統教程
- Windows Server 2012活動目錄企業應用(微課版)
- The Infinite Retina
- Kafka權威指南