Programmation asynchrone (cours complet)

Programmation asynchrone (cours complet)

La programmation asynchrone n'est récemment devenue pas moins développée que la programmation parallèle classique, et dans le monde de JavaSript, tant dans les navigateurs que dans Node.js, la compréhension de ses techniques a pris l'une des places centrales dans l'élaboration de la vision du monde des développeurs. J'attire votre attention sur un cours holistique et des plus complets avec une explication de toutes les méthodes répandues de programmation asynchrone, des adaptateurs entre elles et des ouvertures auxiliaires. Il se compose actuellement de 23 conférences, 3 rapports et 28 référentiels avec de nombreux exemples de code sur github. Total environ 17 heures de vidéo : lien vers la playlist.

Explications du schéma

Le diagramme (ci-dessus) montre les liens entre les différentes manières de travailler avec l'asynchronie. Les blocs colorés font référence à la programmation asynchrone, et le noir et blanc montre les méthodes de programmation parallèle (sémaphores, mutex, barrières, etc.) et les réseaux de Petri, qui, comme la programmation asynchrone et le modèle d'acteur, sont des approches différentes pour mettre en œuvre le calcul parallèle (ils sont donné dans le schéma uniquement pour déterminer plus précisément la place de la programmation asynchrone). Le modèle d'acteur est lié à la programmation asynchrone car l'implémentation d'acteurs sans multithreading a également le droit d'exister et sert à structurer le code asynchrone. Les lignes pointillées relient les événements et la file d'attente simultanée aux rappels car ces abstractions sont basées sur des rappels, mais forment néanmoins des approches qualitativement nouvelles.

Thèmes de cours

1. Programmation asynchrone (aperçu)
2. Minuteries, délais d'attente et EventEmitter
3. Programmation asynchrone utilisant des rappels
4. Itération asynchrone non bloquante
5. Asynchronie avec la bibliothèque async.js
6. Asynchronie sur les promesses
7. Fonctions asynchrones et gestion des erreurs
8. Adaptateurs asynchrones : promisify, callbackify, asyncify
9. Collecteurs de données asynchrones
10. Erreurs non gérées dans les promesses
11. Le problème du stacktrace asynchrone
12. Générateurs et générateurs asynchrones
13. Itérateurs et itérateurs asynchrones
14. Annulation des opérations asynchrones
15. Composition des fonctions asynchrones
16. Attendre ensuite et léger
17. File d'attente asynchrone simultanée
18. Constructeur ouvert de modèle (Constructeur révélateur)
19. Avenir : asynchronie sur l'avenir des apatrides
20. Différé : asynchronie sur les différentiels avec état
21. Modèle d'acteur
22. Observateur de modèles (Observateur + Observable)
23. Asynchronie dans RxJS et flux d'événements

Sous chaque vidéo se trouvent des liens vers des référentiels avec des exemples de code expliqués dans la vidéo. J'ai essayé de montrer qu'il n'est pas nécessaire de tout réduire à une seule abstraction de l'asynchronie. Il n'existe pas d'approche universelle de l'asynchronie et, pour chaque cas, vous pouvez sélectionner les méthodes qui vous permettront d'écrire du code plus naturellement pour cette tâche spécifique. Bien entendu, ce cours sera complété et je demande à chacun de proposer de nouveaux sujets et de contribuer par des exemples de code. L'objectif principal du cours est de montrer comment construire des abstractions asynchrones de l'intérieur, et pas seulement d'apprendre à les utiliser. Presque toutes les abstractions ne proviennent pas de bibliothèques, mais sont présentées dans leur implémentation la plus simple et leur travail est analysé étape par étape.

Seuls les utilisateurs enregistrés peuvent participer à l'enquête. se connecters'il te plait.

Quelle est votre opinion sur le cours ?

  • je vais regarder tout le cours

  • je vais regarder de manière sélective

  • Une seule approche me suffit

  • Je contribuerai au cours

  • Je ne suis pas intéressé par l'asynchronie

8 utilisateurs ont voté. 1 utilisateur s'est abstenu.

Source: habr.com

Ajouter un commentaire