Programare asincronă (curs complet)

Programare asincronă (curs complet)

Programarea asincronă a devenit în ultima vreme la fel de dezvoltată ca programarea paralelă clasică, iar în lumea JavaScript, atât în browsere, cât și în Node.js, înțelegerea tehnicilor sale a ocupat un loc central în formarea viziunii dezvoltatorilor. Vă propun un curs complet, cu o explicație a tuturor metodelor larg răspândite de programare asincronă, adaptatoare între ele și dimensiuni auxiliare. În prezent, acesta constă din 23 de lecții, 3 prezentări și 28 de repozitorii cu multe exemple de cod pe GitHub. În total, aproximativ 17 ore de video: link către playlist.

Explicații pentru schemă

Schema (de mai sus) arată legăturile dintre diferitele modalități de a lucra cu asincronicitatea. Blocurile colorate se referă la programarea asincronă, iar cele alb-negru ilustrează metodele de programare paralelă (semafoare, mutexuri, bariere etc.) și rețelele Petri, care, la fel ca programarea asincronă și modelul actorilor, sunt diferite abordări pentru realizarea calculului paralel (sunt incluse în schemă doar pentru a determina mai precis locul programării asincrone). Modelul actorilor este legat de programarea asincronă deoarece implementarea actorilor fără multithreading are, de asemenea, dreptul la existență și servește la structurarea codului asincron. Liniile punctate leagă evenimentele și coada concurentă de callback-uri, deoarece aceste abstracții se bazează pe callback-uri, dar totuși formează abordări calitativ noi.

Temele lecțiilor

1. Programare asincronă (prezentare generală)
2. Timere, timeout-uri și EventEmitter
3. Programarea asincronă cu callback-uri
4. Iterarea asincronă non-blocantă
5. Асинхронность с библиотекой async.js
6. Asincronicitate cu promisiuni
7. Funcții asincrone și gestionarea erorilor
8. Adaptatori asincroni: promisify, callbackify, asyncify
9. Colectori de date asincroni
10. Erori necontrolate în promisiuni
11. Problema stivei de asyncronicitate
12. Generatoare și generatoare asincrone
13. Iteratori și iteratori asincroni
14. Anularea operațiunilor asincrone
15. Compoziția asincronă a funcțiilor
16. Thenable și await ușor
17. Coada asincronă concurentă
18. Modelul Constructor deschis (Revealing Constructor)
19. Future: Asincronitate cu future-uri fără stare
20. Deferred: Asincronism pe difere cu stări
21. Modelul actorilor (Actor Model)
22. Pattern-ul Observer (Observer + Observable)
23. Asincronism pe RxJS și fluxuri de evenimente

Sub fiecare videoclip există linkuri către repozitorii cu exemple de cod, care sunt analizate în videoclipuri. Am încercat să demonstrez că nu trebuie să reduci totul la o singură abstracție a asincronismului. Nu există o abordare universală pentru asincronism, iar pentru fiecare caz se pot găsi metode care să permită scrierea unui cod mai natural pentru această sarcină specifică. Desigur, acest curs va fi completat, iar eu cer tuturor să propună noi teme și să contribuie la exemplele de cod. Principala sarcină a cursului este de a arăta cum să construiești abstracții ale asincronismului din interior, nu doar să înveți să le folosești. Practic toate abstracțiile nu provin din biblioteci, ci sunt oferite în cea mai simplă implementare și este analizată pas cu pas funcționarea lor.

Numai utilizatorii înregistrați pot participa la sondaj. Conectați-vă, vă rugăm.

Care este opinia dvs. despre curs?

  • Voi urmări tot cursul

  • Voi urmări selectiv

  • Îmi ajunge o abordare

  • Voi contribui la curs

  • Nu mă interesează asincronismul

8 utilizatori au votat. 1 utilizator s-a abținut.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster