如果您知道如何加快速度,那么慢速代码根本不是问题。最主要的是美丽



我多次听到程序员嘲笑编写慢代码的队友。严厉的,自以为是的短语,像“这个傻瓜曾经四次穿过这个收藏集,尽管它本来可以是一个”,等等。听到此消息后,您会立即想到-好吧,一切都在进行中,为什么要进行不必要的迭代?为什么不能学习一些基本知识,例如LINQ表达式在C#中的工作方式,并编写普通代码?你嘲笑那些无能的傻瓜,直到他们开始嘲笑你。并相信我-如果您在不知不觉中喜欢使用二次算法而不是线性算法的情况下,没有多少编程知识可以帮助您。



我不知道是否有人在嘲笑我的代码,但是我敢肯定-我编写的解决方案比原来慢了一百倍以上。但是在这些情况下,我故意写出次优的代码。例如,在C#中有一个for循环,并且有一个Select收集方法(在其他语言中它通常被称为map)。循环速度更快,但是我发现功能方法在美学上更令人愉悦-并且我使用了它。我知道几乎没有数据,不会有瓶颈,而且我认为编写的代码更漂亮,可读性更好。开发中有许多这样的解决方案-只有在我确定肯定会出现缩编的问题时,我才选择编写高效的代码。



, -, , — . , , , . — LINQ . C# — yield — , , . — — , , . , , — .



- , yield, - . , LINQ . - , , , , . . LINQ — , .



— , . BenchmarkDotNet, Pro .NET Benchmarking, , , , , . , — .



, ? , .



Select — Select. , , , , , , .



, . " " — , . " ". , , .



, , — . . for select, , ? C#, , C# — . C++. . , , — . , , — ** . , .



, . , C#. . — , , — . , .






, . Queue, List — , . , , . — .



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



— “ ”, “ ” — , — , . , , , — . , — , , . , .



— . , ", C#, LINQ" , . , . — — — . , "yarn start" . , , . . , — — .



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



— , . , .



选择更漂亮没有错,但是没有更快。当您根本不知道自己的决策是超次优的时,就没有悲剧发生。当您说生产力是废话,让个人去做时,问题就开始了。没有兄弟 学习如何加速代码并不是很多性能书呆子,这是我们工作的一部分。当您不愿意学习复杂的东西使您的代码既慢又丑时,那么您就会遇到大问题。



观看我的播客



All Articles