O código lento não é um problema se você souber como acelerá-lo. O principal é lindo



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



All Articles