Programmation asynchrone (cours complet)

Programmation asynchrone (cours complet)

La programmation asynchrone est devenue ces dernières années un domaine tout aussi développé que la programmation parallèle classique, et dans le monde de JavaScript, tant dans les navigateurs qu'en Node.js, comprendre ses techniques a occupé une place centrale dans la formation de la vision des développeurs. Je vous propose un cours complet et le plus détaillé possible expliquant toutes les méthodes largement répandues de programmation asynchrone, les adaptateurs entre elles et les espaces auxiliaires. À l'heure actuelle, il se compose de 23 cours, 3 présentations et 28 dépôts avec de nombreux exemples de code sur GitHub. Environ 17 heures de vidéos au total : lien vers la playlist.

Explications du schéma

Le schéma (ci-dessus) montre les relations entre les différentes manières de gérer l'asynchronicité. Les blocs colorés se rapportent à la programmation asynchrone, tandis que les méthodes de programmation parallèle (sémaphores, mutex, barrières, etc.) sont représentées en noir et blanc, ainsi que les réseaux de Pétri, qui, tout comme la programmation asynchrone et le modèle des acteurs, sont différentes approches pour réaliser des calculs parallèles (elles sont présentées sur le schéma uniquement pour définir avec précision la place de la programmation asynchrone). Le modèle des acteurs est lié à la programmation asynchrone car la mise en œuvre des acteurs sans multithreading est également valable et sert à structurer le code asynchrone. Les lignes en pointillés relient les événements et la file d'attente concurrente aux callbacks car ces abstractions sont basées sur les callbacks, mais forment néanmoins des approches qualitativement nouvelles.

Sujets des cours

1. Programmation asynchrone (aperçu)
2. Minuteurs, délais et EventEmitter
3. Programmation asynchrone avec des callbacks
4. Itération asynchrone non bloquante
5. Асинхронность с библиотекой async.js
6. Asynchronicité avec 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. Problème de la trace de pile 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 de fonctions asynchrones
16. Thenable et await léger
17. File d'attente asynchrone concurrente
18. Modèle de constructeur révélé (Revealing Constructor)
19. Future : asynchronicité avec des futures sans état
20. Deferred : asynchronicité avec des deferred avec état
21. Modèle d'acteurs (Actor Model)
22. Modèle Observateur (Observer + Observable)
23. Asynchronisme avec RxJS et flux d'événements

Sous chaque vidéo, il y a des liens vers des dépôts contenant des exemples de code, qui sont expliqués dans la vidéo. J'ai essayé de montrer qu'il n'est pas nécessaire de réduire tout à une seule abstraction de l'asynchronicité. Il n'existe pas d'approche universelle à l'asynchronisme, et pour chaque cas, on peut sélectionner les méthodes qui permettront d'écrire du code de manière plus naturelle pour cette tâche spécifique. Bien sûr, ce cours sera enrichi et je demande à tous de proposer de nouveaux sujets et de contribuer aux exemples de code. L'objectif principal du cours est de montrer comment construire des abstractions d'asynchronisme de l'intérieur, et non simplement d'apprendre à les utiliser. Pratiquement toutes les abstractions ne proviennent pas de bibliothèques, mais sont données dans leur implementation la plus simple et leur fonctionnement est examiné étape par étape.

Seuls les utilisateurs enregistrés peuvent participer au sondage. Connectez-vous, s'il vous plaît.

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 vais contribuer au cours

  • Je ne m'intéresse pas à l'asynchronisme

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

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster