Asynchronous programming has recently become as developed a field as classical parallel programming, and in the world of JavaScript, both in browsers and in Node.js, understanding its techniques has taken a central place in shaping developers' perspectives. I present to you a comprehensive and most complete course explaining all widely used methods of asynchronous programming, the adapters between them, and supplementary components. It currently consists of 23 lectures, 3 presentations, and 28 repositories with numerous code examples on GitHub. In total, about 17 hours of video: .
Explanations for the diagram
The diagram (above) shows the relationships between different ways of handling asynchronous operations. The colored blocks correspond to asynchronous programming, while the black-and-white methods highlight parallel programming (semaphores, mutexes, barriers, etc.) and Petri nets, which, like asynchronous programming and the actor model, represent different approaches to implementing parallel computations (they are shown in the diagram only to more accurately pinpoint the place of asynchronous programming). The actor model relates to asynchronous programming because the implementation of actors without multithreading is also valid and serves to structure asynchronous code. The dashed lines connect events and the concurrent queue with callbacks because these abstractions are based on callbacks but still form qualitatively new approaches.
Topics of Lectures
Below each video, there are links to repositories with code examples discussed in the videos. I aimed to show that it's not necessary to reduce everything to a single abstraction of asynchronicity. There is no universal approach to asynchronicity, and for each case, methods can be selected that allow for more natural coding for that specific task. Of course, this course will be continually updated, and I encourage everyone to suggest new topics and contribute to code examples. The main goal of the course is to show how to build abstractions of asynchronicity from the ground up, rather than just teaching how to use them. Virtually all abstractions are not derived from libraries but are provided in their simplest implementation, with a step-by-step explanation of how they function.
Only registered users can participate in the survey. , please.
What is your opinion about the course?
I will watch the entire course
I will watch selectively
One approach is enough for me
I will contribute to the course
I am not interested in asynchronicity
8 users voted. 1 user abstained.
Source: habr.com
