El código lento no es un problema en absoluto si sabe cómo acelerarlo. Lo principal es hermoso



Muchas veces he escuchado a los programadores reírse de sus compañeros de equipo que escribían código lento. Frases duras y farisaicas en el estilo de "este tonto pasó por la colección cuatro veces, aunque podría haber sido una", y cosas por el estilo. Cuando escuchas esto, inmediatamente piensas: bueno, todo está en el negocio, ¿por qué hacer iteraciones innecesarias? ¿Por qué no puede aprender un par de cosas básicas, como cómo funcionan las expresiones LINQ en C # y escribir código normal? Te ríes de los tontos incompetentes hasta que empiezan a reírse de ti. Y créeme, ningún conocimiento de programación te salvará de una situación en la que, sin saberlo, te apetece un algoritmo cuadrático en lugar de uno lineal.



No sé si alguien se estaba riendo de mi código, pero estoy seguro: más de una vez, no dos, escribí una solución que era cien veces más lenta de lo que podría haber sido. Pero en estos casos, escribí deliberadamente subóptimo. Por ejemplo, C # tiene un bucle for y un método de colección Select (en otros lenguajes se le llama más a menudo mapa). El ciclo es más rápido, pero encuentro el enfoque funcional más agradable estéticamente, y lo uso. Sé que hay pocos datos, no habrá cuellos de botella y escribo un código que, en mi opinión, es más bonito, más legible y, por tanto, mejor. Hay muchas soluciones de este tipo en desarrollo, y elijo escribir código productivo solo cuando estoy seguro de que, de lo contrario, las reducciones se convertirán en un 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" . , , . . , — — .



— . , , . — . , , , , , , . . , , . .



— , . , .



No hay nada de malo en que hayas elegido más bonito y no más rápido. Y no hay tragedia cuando simplemente no sabías que tu decisión fue muy subóptima. El problema comienza cuando dices que la productividad es una mierda y dejas que los individuos lo hagan. No hermano. Aprender a acelerar el código no es mucho para los nerds del rendimiento, es parte de nuestro trabajo. Cuando su falta de voluntad para aprender cosas complejas hace que su código sea lento y feo, entonces tiene grandes problemas.



Mira mi podcast



All Articles