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