Enumeráveis e LINQ, por baixo do capô

  Рет қаралды 4,399

EximiaCo - Excelência Tecnológica

EximiaCo - Excelência Tecnológica

Күн бұрын

Saber utilizar tipos enumeráveis pode fazer grande diferença na performance percebida das aplicações. Em .NET, a implementação de tipos enumeráveis é imensamente facilitada pelo LINQ.
Nesse vídeo, apresentamos, com muito código, como funcionam tipos enumeráveis e como saber LINQ ajuda a escrever programas performáticos, de maneira econômica e elegante.

Пікірлер: 24
@AlbertoMonteiro
@AlbertoMonteiro 4 жыл бұрын
Com a sua didática tudo parece fácil, mais um vídeo muito top!! Obrigado!
@nicolassilvadossantos9688
@nicolassilvadossantos9688 3 жыл бұрын
Cara, muito top este conteúdo :)
@IsmaelGasparinBill
@IsmaelGasparinBill 4 жыл бұрын
Fantástico! Dica de vídeo: Fazer esse mesmo processo com paralelismo.
@sparrowBr
@sparrowBr 4 жыл бұрын
Parabéns mais uma vez! Continue! 👏👏👏👏👏👏👏
@apbertoletti
@apbertoletti 4 жыл бұрын
Agora tudo faz sentido, obrigado mais uma vez por iluminar o caminho Elemar!
@hpscode
@hpscode 4 жыл бұрын
Conteúdo muito bom, muito bem feito. Esses recursos de linguagem funcional são fantásticos. Dica: Faz esse conteúdo usando Tasks ou Thread, acredito eu que não seja bom retornar IEnumerable de uma Tasks, porque a resolução fica dentro da Task e a thread fica impedida ate que finalize. Normalmente os devs fazem todos os métodos em uma cadeia de execução (Controller, Application, Repository) usarem Task, 3 threads nessa dessa situação ficariam travadas esperando a resolução.
@otechlead
@otechlead 4 жыл бұрын
Muito bom esse conteúdo.. poderia rolar um desse modelo sobre o IAsyncEnumerable
@kevinallen4872
@kevinallen4872 4 жыл бұрын
Achei muito massa o vídeo anterior sobre yield, para depois fazer a explicação do LINQ. Bem pensado e planejado. Parabéns!
@DanielOliveira-vh4ye
@DanielOliveira-vh4ye 4 жыл бұрын
Sensacional Elemar
@alvpaz
@alvpaz 4 жыл бұрын
Fantástico a forma como ensina, muito a aprender cada dia.
@lsalomao07
@lsalomao07 4 жыл бұрын
Conteúdo incrível !
@adersantos4582
@adersantos4582 4 жыл бұрын
Gostei da idéia, vou tentar adaptar para ler arquivos txt, obtenho todo o conteúdo, extraio as informações pelas posições de início e fim via Substring e via Linq gero resultados.
@matheuskielkowski
@matheuskielkowski 4 жыл бұрын
Muito interessante Elemar! Venho fazendo uma analise muito melhor dos meus códigos assistindo seus vídeos. Obrigado!
@Vandy135
@Vandy135 4 жыл бұрын
Conteúdo excelente , parabéns
@ronanluiz9704
@ronanluiz9704 4 жыл бұрын
Elemar, muito obrigado por compartilhar seu vasto conhecimento e essa dica trará bons frutos nas minhas batalhas diárias. Gostaria muito de contar com sua ajuda para explicar o impacto da conversão do IEnumerable para IList, as vezes até nesse exemplo que deu, pois temos uma tendência a utilizar os tipos mais comuns e geram impacto às vezes sem saber. O ideial é utilizar mais o IEnumerable no lugar no IList? Qual o cenário mais ideal para utlização do IList? Agradeço muito e conto com mais essa contribuição para nós!
@felipeoriani
@felipeoriani 4 жыл бұрын
Muito bom Elemar. Sempre preferi trabalhar com IEnumerable também mas sempre tive em mente algo mais defensivo (imutável), diferentemente de uma implementação de ICollection, que possui Add, Remove, etc. Os pontos apresentados aqui realmente deixam a solução mais elaborada. Se me permite comentar algo, gostaria de acrescentar um cuidado quando usamos Linq to SQL. Já tive problemas no caso de IQueryable (que herda de IEnumerable) e entendo que ele é uma preparação para a query a ser executada na base de dados e após algum método que materializa isso, como é o caso de ToList() ou First(), ele processa a query. Acontece que já me deparei com casos onde repasso um IEnumerable sendo ele uma instância criada a partir de um ORM (IQueryable), ocasionando da query ser executada em uma camada das camadas adiante (Negócios, Aplicação, e até na UI =/). Neste cenário, acho que é sempre bom forçar o IQueryable para uma coleção ou objeto para a memória. Entendo que o tópico deste vídeo é sobre memória mas poderia comentar se esta seria a melhor abordagem com banco de dados? Obrigado Elemar.
@YuriWithowsky
@YuriWithowsky 4 жыл бұрын
Ótimo conteúdo! Parabéns!
@Mec2005
@Mec2005 4 жыл бұрын
👏👏👏👏👏👏👏👏👏
@lndr_ssantos
@lndr_ssantos 4 жыл бұрын
Finalmente entendi o yield return!
@nacasadobeirinha1524
@nacasadobeirinha1524 4 жыл бұрын
Bom dia Elemar. Sempre tive duvidas em relação a em qual momento instancia uma classe que implementa um enumerable ou queryble da vida. Depois de algumas leituras tenho programado mais pra interface do que pra implementação, tentando mudar esse paradigma. No caso de assinatura de métodos, você indica não usar a assinatura tipada e sim a interface q ela implementa, no caso um IEnumerable ao inves do List que seria a concreta, para deixar mais facil e estender a decisão de quem está consumindo para o ultimo momento. Outro tema interessante seria apontar a diferença e o ganho no uso entre IQueryable, IList, IEnumerable> Grande abraço e parabens pelo conteudo!
@otechlead
@otechlead 4 жыл бұрын
Programar voltado a interface é sempre mais interessante, e no caso que vc citou sempre utilize IEnumerable, visto que List além de ser a implementação concreta, já traz todos os itens para a memória e vc perde todos os benefícios do IEnumerable que foram citados neste vídeo.
@nacasadobeirinha1524
@nacasadobeirinha1524 4 жыл бұрын
@@otechlead foi exatamente o que havia lido, o q list traria todos os itens pra memória, mas isso também n seria o caso do IEnumerable, ja que ele aponta pra um item mas precisa ter em memória p poder pegar o proximo e assim por diante, ao contrário do Iqueryable que permite o lazyload?
@otechlead
@otechlead 4 жыл бұрын
@@nacasadobeirinha1524 quando vc fala LazyLoad, vc deve estar falando de Linq usando o EntityFramework? Neste caso o Iqueryable "monta a query" antes da execução em si. Mais para objetos em memória o IEnumerable tem esse comportamento "sob demanda" como mostrado no video
@carlosl8832
@carlosl8832 3 жыл бұрын
👍🏽
Obsessão por tipos primitivos
18:50
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Como funciona o "yield return", do C#, "por baixo do capô"?
18:00
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Inside Out 2: ENVY & DISGUST STOLE JOY's DRINKS!!
00:32
AnythingAlexia
Рет қаралды 17 МЛН
Who’s the Real Dad Doll Squid? Can You Guess in 60 Seconds? | Roblox 3D
00:34
«Кім тапқыр?» бағдарламасы
00:16
Balapan TV
Рет қаралды 138 М.
didn't manage to catch the ball #tiktok
00:19
Анастасия Тарасова
Рет қаралды 23 МЛН
Pequenas mudanças no código, grandes ganhos (10x) na performance em aplicações .NET
20:33
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
Custos, Complexidade e Acoplamento | Fundamentos de Arquitetura de Software | Parte 07
22:01
EximiaCo - Excelência Tecnológica
Рет қаралды 7 М.
DESMISTIFICANDO A ARQUITETURA LIMPA | CAMADA DE ENTIDADES
19:46
Leonardo Giraldi | Dev
Рет қаралды 1,4 М.
Paralelismo em .NET com Thread, ThreadPool, TPL e CUDA
22:52
EximiaCo - Excelência Tecnológica
Рет қаралды 7 М.
Descomplicando "Event Sourcing"
13:05
EximiaCo - Excelência Tecnológica
Рет қаралды 19 М.
Descomplicando CQRS
14:02
EximiaCo - Excelência Tecnológica
Рет қаралды 34 М.
Entendendo a área de memória conhecida como Stack
17:36
EximiaCo - Excelência Tecnológica
Рет қаралды 6 М.
8 await async mistakes that you SHOULD avoid in .NET
21:13
Nick Chapsas
Рет қаралды 313 М.
Entendendo a Heap e o Garbage Collector em .NET
34:11
EximiaCo - Excelência Tecnológica
Рет қаралды 8 М.
Métricas, cuidados, estratégias arquiteturais para boa escalabilidade e performance
14:07
EximiaCo - Excelência Tecnológica
Рет қаралды 4,4 М.
Inside Out 2: ENVY & DISGUST STOLE JOY's DRINKS!!
00:32
AnythingAlexia
Рет қаралды 17 МЛН