Fala galera!
Agora com o gt bem configurado, como disse no post anterior, pude publicar um experimento interessante que fiz para poder me aperfeiçoar no uso de programação concorrente em .NET.
Desde que ganhamos o async await a programação de serviços que necessitavam de paralelismo, como hcamadas a APIs, I/O e comunicação em rede em geral s tornou muito fácil apesar de muita gente, eu inclusivo, ter demorado para entendr o seu real uso.
Mas algo que se tornoucomum em meu dia desde que entrei no projeto atual foi o uso de programação reativa (Reactive Programming) com o uso da System.Reactive, seus tipos, e todo conjunto de regras que rodeiam os Observables e Observers.
Para quem não conhece este paradigma ao invés d programarmos de forma imperativa chamando algo e aguardando e recebendo imediatamente o que solicitamos, seja lá o que imediatamente signifique entre milesegundos e minutos, na programação reativa trabalhamos com fluxos de dados que nos notificam esó então atuamos.
Por exemplo podemos observar um evento de tap em um botão, neste momento solicitar dados em uma API, e só quando recebermos estes dados atualizarmos a interface do usuário.
Como reatividade e paralelismo andam juntos com isto liberamos a thread principal para que nosso aplicativo não fique travado.
Temos centenas de operadores que podem ser aplicados para filtrar, combinar, transformar e extrair mais informações destes fluxos e isto abre uma gama ainda maior de possibilidades.
Mas novamente conhecer bem estes conceitos é o que faz vocêfazer um bom uso e ter real controle da sua aplicação.
Na próxima postagem irei compartilhar o repositório e descrever quais foram minhas experiencias.
Até amanhã!