Programação assíncrona (curso completo)

Métodos de programação assíncrona


A programação assíncrona recentemente se tornou não menos desenvolvida do que a programação paralela clássica e, no mundo JavaScript, tanto nos navegadores quanto no Node.js, o entendimento de suas técnicas ocupou um dos lugares centrais na formação da visão de mundo dos desenvolvedores. Trago à sua atenção um curso holístico e mais abrangente, com uma explicação de todos os métodos difundidos de programação assíncrona, adaptadores entre eles e aberturas auxiliares. Agora ele consiste em 23 palestras, 3 relatórios e 28 repositórios com muitos códigos de amostra no github. Apenas cerca de 17 horas de vídeo: link para a lista de reprodução .


Explicações para o esquema


O diagrama (acima) mostra as conexões entre diferentes maneiras de trabalhar com assincronia. Os blocos coloridos se referem à programação assíncrona, enquanto o preto e branco mostra métodos de programação paralelos (semáforos, mutexes, barreiras etc.) e redes de Petri, que, como a programação assíncrona e o modelo do ator, são abordagens diferentes para a implementação da computação paralela (eles são fornecidas no diagrama apenas para determinar com mais precisão a localização da programação assíncrona). O modelo de ator está associado à programação assíncrona porque a implementação de atores sem multithreading também tem o direito de existir e serve para estruturar o código assíncrono. As linhas tracejadas de eventos e a fila competitiva são associadas a retornos de chamada, porque essas abstrações são baseadas em retornos de chamada, mas, no entanto, formam abordagens qualitativamente novas.


Tópicos da palestra


1. Programação assíncrona (visão geral)
2. Timers, Timeouts e EventEmitter
3. Programação assíncrona em retornos de chamada
4. Iteração assíncrona sem bloqueio
5. Assincronia com a biblioteca async.js
6. assincronia promocional
7. Funções assíncronas e tratamento de erros
8. Adaptadores assíncronos: promisify, callbackify, asyncify
9. Coletores de Dados Assíncronos
10. Erros não processados ​​nas promessas
11. O problema do stackrace assíncrono
12. Geradores e geradores assíncronos
13. Iteradores e iteradores assíncronos
14. Cancelamento de operações assíncronas
15. Composição assíncrona de funções
16. Aguardável e leve aguardam
17. Fila assíncrona competitiva
18. Revelando o padrão do construtor
19. Futuro: assincronia em futuros sem estado
20. Diferido: assincronia sobre adia de estado
21. Modelo do ator
22. Padrão de Observador (Observador + Observável)
23. Assincronia no RxJS e fluxos de eventos


Sob cada vídeo, há links para repositórios com exemplos de código que entendem o vídeo. Tentei mostrar que não é necessário reduzir tudo a uma abstração de assincronia. Não existe uma abordagem universal para a assincronia e, para cada caso, você pode escolher os métodos que permitirão escrever código de maneira mais natural para esta tarefa específica. Obviamente, este curso será complementado e peço a todos que sugiram novos tópicos e contribuam com exemplos de código. O principal objetivo do curso é mostrar como construir abstrações de assincronia a partir do interior, e não apenas ensinar como usá-las. Quase todas as abstrações não são obtidas de bibliotecas, mas são fornecidas em sua implementação mais simples e seu trabalho é classificado passo a passo.

Source: https://habr.com/ru/post/pt452974/


All Articles