Vou te mostrar como transformei um código feio que usa variáveis globais, que é impossível definir a ordem de execução das coisas, tem várias má praticas, em um código melhor, usando programação reativa recriando a famosa lib RxJS para usar APIs nativas do JavaScript para alcançar o mesmo resultado
Criando uma Alternativa Reativa para RxJS usando JavaScript | Erick Wendel
É isso mesmo, ao invés de usar a biblioteca, vou te mostrar um dos códigos mais curiosos que você pode ter encontrado na sua vida até o momento para recria-la usando os mesmos conceitos
Se você nunca ouviu falar sobre Programação orientada a eventos, funcional, reativa, Web Streams, composição ou sobre o padrão pipeline que é o coração de sistemas operacionais baseados em linux, então bora comigo.
#rxjs #javascript #tutorial
✅ Código Fonte + Refs: https://bit.ly/prog-reativa-rxjs-code
✅ Lista de espera treinamento JS Expert: https://bit.ly/javascriptexpert-ew
✅Leia meu blog post sobre o assunto: https://blog.erickwendel.com.br/reimaging-rxjs-using-web-streams
✅ TIMELINE
00:00 - O que você vai ver neste vídeo
00:43 - Programação Orientada a Eventos
01:55 - Programação Funcional
03:30 - Programação Reativa
06:12 - Reactive Extensions
08:20 - Nova API do Javascript
09:06 - O que você vai fazer neste projeto
09:52 - O treinamento JS Expert
10:36 - Deixe o seu like no video!
10:52 - Demo: criando o arquivo HTML
14:02 - Projetos de inspiração
17:55 - Adicionando estilização ao projeto
22:07 - Configurando o index.js
25:46 - Implementando o operador fromEvent
29:20 - Implementando função de captura do mouse
32:03 - Implementando o operador setInterval
35:07 -Implementando o operador map
43:40 - Escrever e pintar na tela
47:50 - Implementando o operador race
54:39 - Trocando o nome do operador de race para combine
56:33 - Trocando o nome do operador de combine para merge
57:07 - Receber os dados do mouse
01:01:02 - Trocando o foco do evento
01:03:23 - Implementando o operador switchMap
01:06:33 - Testando alterações
01:08:27 - Transformar os resultados retornados em coordenadas
01:12:59 - Testando alterações e ajustando bugs
01:15:17 - Recapitulando tudo que foi feito
01:16:54 - Implementando o operador TakeUntil
01:23:33 - Testando as alterações e resolvendo erros
01:28:23 - Verificar se a stream ativa já encerrou
01:29:04 - Enviando o valor correto ao lastPosition
01:30:07 - Criando a função de limpar a tela
01:33:54 - Testando alterações
01:35:12 - Considerações finais
01:35:55 - Erros de gravação
01:37:16 - Se inscreva no canal e compartilhe esse vídeo!