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 : .
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
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. , 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
