Já ouvi muitas vezes como os programadores riem de colegas de equipe que escreveram códigos lentos. Frases ásperas e hipócritas no estilo "este idiota percorreu a coleção quatro vezes, embora pudesse ter sido uma" e assim por diante. Ao ouvir isso, você imediatamente pensa - bem, tudo está funcionando, por que fazer iterações desnecessárias? Por que você não pode aprender algumas coisas básicas, como como as expressões LINQ funcionam em C #, e escrever código normal? Você ri de tolos incompetentes até que eles comecem a rir de você. E você pode acreditar em mim - nenhum conhecimento em programação irá salvá-lo de uma situação em que você inadvertidamente deseja um algoritmo quadrático em vez de um linear.
NĂŁo sei se alguĂ©m estava rindo do meu cĂłdigo, mas tenho certeza - mais de uma ou duas vezes escrevi uma solução que era cem vezes mais lenta do que poderia ser. Mas, nesses casos, escrevi deliberadamente abaixo do ideal. Por exemplo, C # tem um loop for e um mĂ©todo de coleta Select (em outras linguagens, Ă© mais frequentemente chamado de map). O loop Ă© mais rápido, mas acho a abordagem funcional mais agradável esteticamente - e eu a uso. Sei que há poucos dados, nĂŁo haverá gargalos e escrevo um cĂłdigo que, em minha opiniĂŁo, Ă© mais bonito, mais legĂvel e, portanto, melhor. Existem muitas dessas soluções em desenvolvimento - e eu escolho escrever cĂłdigo produtivo apenas quando tenho certeza de que, de outra forma, as perdas se tornarĂŁo um problema.
, -, , — . , , , . — LINQ . C# — yield — , , . — — , , . , , — .
- , yield, - . , LINQ . - , , , , . . LINQ — , .
— , . BenchmarkDotNet, Pro .NET Benchmarking, , , , , . , — .
, ? , .
Select — Select. , , , , , , .
, . " " — , . " ". , , .
, , — . . for select, , ? C#, , C# — . C++. . , , — . , , — ** . , .
, . , C#. . — , , — . , .
, . Queue, List — , . , , . — .
, . . — , . , , — , . , .
— “ ”, “ ” — , — , . , , , — . , — , , . , .
— . , ", C#, LINQ" , . , . — — — . , "yarn start" . , , . . , — — .
— . , , . — . , , , , , , . . , , . .
— , . , .
NĂŁo há nada de errado que vocĂŞ escolheu mais bonito, mas nĂŁo mais rápido. E nĂŁo há tragĂ©dia quando vocĂŞ simplesmente nĂŁo sabe que sua decisĂŁo foi super abaixo do ideal. O problema começa quando vocĂŞ diz que produtividade Ă© besteira e deixa que os indivĂduos o façam. Nao Mano. Aprender como acelerar o cĂłdigo nĂŁo Ă© o destino dos nerds de desempenho, Ă© parte do nosso trabalho. Quando sua falta de vontade de aprender coisas complexas torna seu cĂłdigo lento e feio, entĂŁo vocĂŞ tem grandes problemas.
Assista meu podcast