Programmazione asincrona (corso completo)

Programmazione asincrona (corso completo)

La programmazione asincrona è diventata negli ultimi tempi un campo sviluppato non meno della programmazione parallela classica. Nel mondo di JavaScript, sia nei browser che in Node.js, la comprensione delle sue tecniche ha occupato uno dei posti centrali nella formazione della mentalità degli sviluppatori. Vi presento un corso completo e il più dettagliato possibile che spiega tutti i metodi di programmazione asincrona ampiamente diffusi, i loro adattatori e i metodi ausiliari. Attualmente, consiste in 23 lezioni, 3 relazioni e 28 repository con moltissimi esempi di codice su github. In totale, circa 17 ore di video: link alla playlist.

Spiegazioni allo schema

Nello schema (sopra) sono mostrati i legami tra i diversi modi di lavorare con l'asincronia. I blocchi colorati si riferiscono alla programmazione asincrona, mentre in bianco e nero sono mostrati i metodi di programmazione parallela (semafori, mutex, barriere, ecc.) e le reti di Petri, che, come la programmazione asincrona e il modello attoriale, sono diversi approcci per implementare calcoli paralleli (sono dati nello schema solo per definire meglio la posizione della programmazione asincrona). Il modello attoriale è legato alla programmazione asincrona perché l'implementazione degli attori senza multithreading ha diritto di esistere e serve a strutturare il codice asincrono. Le linee tratteggiate collegano gli eventi e la coda concorrente ai callback perché queste astrazioni si basano sui callback, ma comunque formano approcci qualitativamente nuovi.

Temi delle lezioni

1. Programmazione asincrona (panoramica)
2. Timer, timeout e EventEmitter
3. Programmazione asincrona con callback
4. Iterazione asincrona non bloccante
5. Асинхронность с библиотекой async.js
6. Asincronia con le promesse
7. Funzioni asincrone e gestione degli errori
8. Adattatori asincroni: promisify, callbackify, asyncify
9. Collettori di dati asincroni
10. Errori non gestiti nelle promesse
11. Il problema dello stack trace asincrono
12. Generatori e generatori asincroni
13. Iteratori e iteratori asincroni
14. Annullamento delle operazioni asincrone
15. Composizione di funzioni asincrone
16. Thenable e await leggero
17. Coda asincrona concorrente
18. Modello di costruttore rivelatore (Revealing Constructor)
19. Future: Asincronia su futuri senza stato
20. Deferred: Asincronia su deferred con stato
21. Modello degli attori (Actor Model)
22. Modello Osservatore (Observer + Observable)
23. Assincronicità su RxJS e flussi di eventi

Sotto ogni video ci sono link ai repository con esempi di codice, che vengono analizzati nel video. Ho cercato di mostrare che non è necessario ridurre tutto a un'unica astrazione di asincronicità. Non esiste un approccio universale all'asincronicità; per ogni caso si possono scegliere i metodi che permetteranno di scrivere codice in modo più naturale per quel compito specifico. Certamente, questo corso sarà ulteriormente ampliato e chiedo a tutti di proporre nuovi argomenti e contribuire agli esempi di codice. L'obiettivo principale del corso è mostrare come costruire astrazioni di asincronicità dall'interno, e non solo insegnare come usarle. Praticamente tutte le astrazioni non vengono da librerie, ma sono fornite nella loro implementazione più semplice e il loro funzionamento viene analizzato passo dopo passo.

Solo gli utenti registrati possono partecipare al sondaggio. Accedi, per favore.

Qual è la tua opinione sul corso?

  • Guarderò l'intero corso

  • Guarderò selettivamente

  • Mi basta un approccio

  • Contribuirò al corso

  • Non mi interessa l'asincronicità

Hanno votato 8 utenti. Si è astenuto 1 utente.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster