Asynchroon programmeren (volledige cursus)

Asynchroon programmeren (volledige cursus)

Asynchrone programmering is de laatste tijd niet minder ontwikkeld dan klassieke parallelle programmering, en in de wereld van JavaSript, zowel in browsers als in Node.js, heeft het begrijpen van de technieken ervan een van de centrale plaatsen ingenomen bij het vormgeven van het wereldbeeld van ontwikkelaars. Ik breng een holistische en meest complete cursus onder uw aandacht met een uitleg van alle wijdverbreide methoden van asynchrone programmering, adapters ertussen en hulpopeningen. Het bestaat momenteel uit 23 lezingen, 3 rapporten en 28 repositories met veel codevoorbeelden op github. Totaal ongeveer 17 uur aan video: link naar afspeellijst.

Verklaringen bij het schema

Het diagram (hierboven) toont de verbanden tussen verschillende manieren van werken met asynchronie. De gekleurde blokken verwijzen naar asynchrone programmering, en z/w toont parallelle programmeermethoden (semaforen, mutexen, barrières, enz.) en Petri-netten, die, net als asynchrone programmering en het actormodel, verschillende benaderingen zijn voor het implementeren van parallel computergebruik (ze zijn alleen in het diagram weergegeven om de plaats van asynchrone programmering nauwkeuriger te bepalen). Het actormodel is gerelateerd aan asynchrone programmering omdat de implementatie van actoren zonder multithreading ook bestaansrecht heeft en dient om asynchrone code te structureren. De stippellijnen verbinden gebeurtenissen en de gelijktijdige wachtrij met callbacks, omdat deze abstracties gebaseerd zijn op callbacks, maar nog steeds kwalitatief nieuwe benaderingen vormen.

Lezing onderwerpen

1. Asynchrone programmering (overzicht)
2. Timers, time-outs en EventEmitter
3. Asynchrone programmering met behulp van callbacks
4. Niet-blokkerende asynchrone iteratie
5. Asynchronie met de async.js-bibliotheek
6. Asynchronie op het gebied van beloften
7. Asynchrone functies en foutafhandeling
8. Asynchrone adapters: beloven, terugbellen, asynchroniseren
9. Asynchrone gegevensverzamelaars
10. Onverwerkte fouten in beloftes
11. Het probleem van asynchrone stacktrace
12. Generatoren en asynchrone generatoren
13. Iteratoren en asynchrone iteratoren
14. Asynchrone bewerkingen annuleren
15. Asynchrone functiesamenstelling
16. Handig en lichtgewicht wachten
17. Gelijktijdige asynchrone wachtrij
18. Patroon open constructor (Revealing Constructor)
19. Toekomst: Asynchronie op het gebied van staatloze toekomsten
20. Uitgesteld: asynchronie op stateful differentiëlen
21. Acteursmodel
22. Patroonwaarnemer (waarnemer + waarneembaar)
23. Asynchronie in RxJS en gebeurtenisstreams

Onder elke video staan ​​links naar repositories met codevoorbeelden die in de video worden uitgelegd. Ik heb geprobeerd aan te tonen dat het niet nodig is om alles terug te brengen tot één abstractie van asynchronie. Er bestaat geen universele benadering van asynchronie, en voor elk geval kunt u die methoden selecteren waarmee u op een meer natuurlijke manier code voor deze specifieke taak kunt schrijven. Uiteraard wordt deze cursus aangevuld en vraag ik iedereen om nieuwe onderwerpen aan te dragen en codevoorbeelden aan te dragen. Het belangrijkste doel van de cursus is om te laten zien hoe je asynchrone abstracties van binnenuit kunt bouwen, en niet alleen hoe je ze moet gebruiken. Bijna alle abstracties komen niet uit bibliotheken, maar worden in hun eenvoudigste implementatie gegeven en hun werk wordt stap voor stap geanalyseerd.

Alleen geregistreerde gebruikers kunnen deelnemen aan het onderzoek. Inloggen, Alsjeblieft.

Wat is jouw mening over de cursus?

  • Ik kijk de hele cursus

  • Ik zal selectief kijken

  • Eén aanpak is voor mij genoeg

  • Ik zal een bijdrage leveren aan de cursus

  • Ik ben niet geïnteresseerd in asynchronie

8 gebruikers hebben gestemd. 1 gebruiker onthield zich van stemming.

Bron: www.habr.com

Voeg een reactie