
La programación asincrónica se ha convertido recientemente en no menos desarrollada que la programación paralela clásica, y en el mundo de JavaScript, tanto en los navegadores como en Node.js, la comprensión de sus técnicas ha tomado uno de los lugares centrales en la configuración de la visión del mundo de los desarrolladores. Traigo a su atención un curso holístico y más completo con una explicación de todos los métodos generalizados de programación asincrónica, adaptadores entre ellos y aperturas auxiliares. Ahora consta de 23 conferencias, 3 informes y 28 repositorios con muchos códigos de muestra en github. Solo unas 17 horas de video: enlace a la lista de reproducción .
Explicaciones para el esquema.
El diagrama (arriba) muestra las conexiones entre diferentes formas de trabajar con asincronía. Los bloques de colores se refieren a la programación asincrónica, mientras que b / w muestra métodos de programación paralelos (semáforos, mutexes, barreras, etc.) y redes de Petri, que, como la programación asincrónica y el modelo de actor, son enfoques diferentes para la implementación de la computación paralela (ellos se dan en el diagrama solo para determinar con mayor precisión la ubicación de la programación asincrónica). El modelo de actor está asociado con la programación asincrónica porque la implementación de actores sin subprocesamiento múltiple también tiene derecho a existir y sirve para estructurar el código asincrónico. Las líneas discontinuas de eventos y la cola competitiva están asociadas con devoluciones de llamada porque estas abstracciones se basan en devoluciones de llamada, pero sin embargo forman enfoques cualitativamente nuevos.
Temas de la conferencia
1. Programación asincrónica (descripción general)
2. Temporizadores, tiempos de espera y EventEmitter
3. Programación asincrónica en devoluciones de llamada
4. iteración asincrónica sin bloqueo
5. Asincronía con la biblioteca async.js
6. Asincronía promocional
7. Funciones asincrónicas y manejo de errores.
8. Adaptadores asincrónicos: promisify, callbackify, asyncify
9. Colectores de datos asincrónicos
10. Errores no procesados en las promesas
11. El problema de la pila asincrónica
12. Generadores y generadores asíncronos.
13. Iteradores e iteradores asíncronos.
14. Cancelación de operaciones asincrónicas.
15. Composición asincrónica de funciones.
16. Tenable y ligero te esperan
17. Cola asincrónica competitiva
18. Patrón de constructor revelador
19. Futuro: asincronía sobre futuros sin estado
20. Diferido: asincronía en los estados difiere
21. Modelo de actor
22. Patrón de observador (observador + observable)
23. Asincronía en RxJS y secuencias de eventos
Debajo de cada video, hay enlaces a repositorios con ejemplos de código que entienden el video. Traté de mostrar que no es necesario reducir todo a una abstracción de asincronía. No existe un enfoque universal para la asincronía, y para cada caso, puede elegir los métodos que le permitirán escribir código de forma más natural para esta tarea específica. Por supuesto, este curso se complementará y les pido a todos que sugieran nuevos temas y contribuyan a ejemplos de código. El objetivo principal del curso es mostrar cómo construir abstracciones de asincronía desde adentro, y no solo enseñar cómo usarlas. Casi todas las abstracciones no se toman de las bibliotecas, sino que se dan en su implementación más simple y su trabajo se clasifica paso a paso.