Asynchrone Programmierung (vollständiger Kurs)

Asynchrone Programmierung (vollständiger Kurs)

Die asynchrone Programmierung ist in letzter Zeit nicht weniger entwickelt als die klassische parallele Programmierung, und in der Welt von JavaSript, sowohl in Browsern als auch in Node.js, hat das Verständnis seiner Techniken einen zentralen Platz bei der Gestaltung der Weltanschauung der Entwickler eingenommen. Ich mache Sie auf einen ganzheitlichen und vollständigsten Kurs mit einer Erläuterung aller weit verbreiteten Methoden der asynchronen Programmierung, Adaptern zwischen ihnen und Hilfsöffnungen aufmerksam. Es besteht derzeit aus 23 Vorträgen, 3 Berichten und 28 Repositories mit vielen Codebeispielen auf Github. Insgesamt ca. 17 Stunden Video: Link zur Playlist.

Erläuterungen zu dem Schema

Das Diagramm (oben) zeigt die Zusammenhänge zwischen verschiedenen Arbeitsweisen mit Asynchronität. Die farbigen Blöcke beziehen sich auf asynchrone Programmierung und s/w zeigt parallele Programmiermethoden (Semaphoren, Mutexe, Barrieren usw.) und Petrinetze, die, wie asynchrone Programmierung und das Akteurmodell, unterschiedliche Ansätze zur Implementierung paralleler Berechnungen darstellen (sie sind es). (im Diagramm nur angegeben, um den Ort der asynchronen Programmierung genauer zu bestimmen). Das Akteurmodell ist mit der asynchronen Programmierung verwandt, da auch die Implementierung von Aktoren ohne Multithreading eine Daseinsberechtigung hat und der Strukturierung von asynchronem Code dient. Die gestrichelten Linien verknüpfen Ereignisse und die gleichzeitige Warteschlange mit Rückrufen, da diese Abstraktionen auf Rückrufen basieren, aber dennoch qualitativ neue Ansätze bilden.

Vorlesungsthemen

1. Asynchrone Programmierung (Übersicht)
2. Timer, Timeouts und EventEmitter
3. Asynchrone Programmierung mit Rückrufen
4. Nicht blockierende asynchrone Iteration
5. Asynchronität mit der async.js-Bibliothek
6. Asynchronität bei Versprechen
7. Asynchrone Funktionen und Fehlerbehandlung
8. Asynchrone Adapter: promisify, callbackify, asyncify
9. Asynchrone Datensammler
10. Unbehandelte Fehler in Versprechen
11. Das Problem des asynchronen Stacktrace
12. Generatoren und Asynchrongeneratoren
13. Iteratoren und asynchrone Iteratoren
14. Abbrechen asynchroner Vorgänge
15. Asynchrone Funktionszusammensetzung
16. Stabil und leicht
17. Gleichzeitige asynchrone Warteschlange
18. Offener Musterkonstruktor (Revealing Constructor)
19. Zukunft: Asynchronität bei zustandslosen Zukünften
20. Aufgeschoben: Asynchronität bei zustandsbehafteten Differentialen
21. Schauspielermodell
22. Musterbeobachter (Beobachter + Observable)
23. Asynchronität in RxJS und Ereignisströmen

Unter jedem Video finden Sie Links zu Repositories mit Codebeispielen, die im Video erklärt werden. Ich habe versucht zu zeigen, dass es nicht nötig ist, alles auf eine Abstraktion der Asynchronität zu reduzieren. Es gibt keinen universellen Ansatz für Asynchronität, und Sie können für jeden Fall die Methoden auswählen, mit denen Sie Code für diese spezielle Aufgabe natürlicher schreiben können. Natürlich wird dieser Kurs ergänzt und ich bitte alle, neue Themen vorzuschlagen und Codebeispiele beizusteuern. Das Hauptziel des Kurses besteht darin, zu zeigen, wie man Asynchronitätsabstraktionen von innen heraus erstellt, und nicht nur zu lehren, wie man sie verwendet. Fast alle Abstraktionen stammen nicht aus Bibliotheken, sondern werden in ihrer einfachsten Implementierung angegeben und ihre Arbeit Schritt für Schritt analysiert.

An der Umfrage können nur registrierte Benutzer teilnehmen. Einloggenbitte.

Was ist Ihre Meinung zum Kurs?

  • Ich werde mir den gesamten Kurs ansehen

  • Ich werde selektiv suchen

  • Mir reicht ein Ansatz

  • Ich werde zum Kurs beitragen

  • Ich bin nicht an Asynchronität interessiert

8 Benutzer haben abgestimmt. 1 Nutzer enthielten sich der Stimme.

Source: habr.com

Kommentar hinzufügen