«Чистый» код, ужасная производительность

Yori Yori 1 Марта 2023 (ред)

Один из наиболее часто повторяемых советов по программированию, особенно начинающим программистам, заключается в том, что они должны писать «чистый» код. Этот призыв сопровождается длинным списком правил, которые говорят вам, что вы должны сделать, чтобы ваш код был «чистым».

Большая часть этих правил фактически не влияет на время выполнения написанного вами кода. Такого рода правила не могут быть объективно оценены, да и не обязательно, потому что на данный момент они достаточно произвольны. Тем не менее, некоторые «чистые» правила кода — некоторые из наиболее подчеркнутых — являются вещами, которые мы можем объективно измерить, поскольку они действительно влияют на поведение кода во время выполнения.

Если вы посмотрите на «чистую» сводку кода и вытащите правила, которые действительно влияют на структуру вашего кода, вы получите:

  • Предпочитайте полиморфизм «if/else» и «switch»
  • Функции должны быть небольшими
  • И т.д.

Эти правила довольно специфичны в отношении того, как должен быть создан любой конкретный фрагмент кода, чтобы он был «чистым». Я хотел бы спросить, если мы создадим фрагмент кода, который следует этим правилам, как он будет работать?

Чтобы сконструировать то, что я считаю наиболее благоприятным случаем реализации чего-либо на «чистом» коде, я использовал существующий пример кода, содержащийся в литературе по «чистому» коду. Таким образом, я ничего не придумываю, я просто оцениваю правила сторонников «чистого» кода, используя пример кода, который они приводят для иллюстрации этих правил.

продолжение в статье…

Когда мы смотрим на результаты, мы видим нечто весьма примечательное: всего одно изменение — написание кода по старинке, а не «чистый» код — дало нам немедленное увеличение производительности в 1,5 раза.

https://www.computerenhance.com/p/clean-code-horrible-performance

3 Ответа

  1. German German 1 Марта 2023 (ред.)

    Многие сторонники «чистого кода» пишут ужасные чудовища из абстрагированного кода, который изначально сложно понять, сложно поддерживать и который имеет дерьмовую производительность. )

    1. Dmitry Dmitry 1 Марта 2023 (ред.)

      Если компилятор выдаёт ошибку, то лучше перепроверить код, патч какой-то делал для игры и утечка памяти была. Вроде гта4 или Макс Пайн 3.
      Производительность это главное, имхо. Например помню лет 10 назад qip и/или Миранда несколько мб весил и мог в разные протоколы, что сейчас тг и ВЦ не могут при их размере с сотки мб

  1. Evg Evg 1 Марта 2023

    Профилирование надо делать. От задач. Вон meneame.net, обсуждали, почему он не следует «лучшим практикам». На что автор сказал, у меня сейчас пару серверов только работает, я не хочу покупать еще.

    В PHP реально, очень сильно зависит, например, дробление на более мелкие функции. Читается лучше, но расход памяти возрастает. Видимо при сборке всё учитывается. Чего Laravel такой, жрет сколько, хотя все говорят «правильный» с точки зрения кода. )