Интересно, как это называется?

Смотрю тут один опенсорсный проектик на гитхабе и понимаю, что в Cisco работают такие же индусы, как и везде (хотя нет, кое-где за такое могут и уебать):

https://github.com/cisco/ns3-802.11ax-simulator/blob/master/ns-3.26/src/wifi/model/rrm-wifi-manager.cc

Совершенно шикарны строки со 149 по 155, да и все их многочисленные копипасты. Поневоле задумываешься, как же в принципе может более-менее стабильно работать современный софт и тем более железо, разработанное “клоунами под руководством мартышек”.

PS Посмотрел профили указанных в заголовке индусов на линкедине. Сильно опечалился.

21 комментарий

  1. Дмитрий пишет:

    А можно подробнее для не сильно опытных? Струтурка там 15 КБ, на стеке не выделишь. Заменить выделение и очистку макросом? Или плохо гонять malloc в каждой функции? В теории можно выделить раз и переиспользовать, но только если функции точно не будут друг друга вызывать.

  2. Михаил пишет:

    Знаю я тут одного из Unwired Device. Нещадного гнобителя программистов.
    Вот тут можно посмотреть качество кода от этой конторки
    https://github.com/unwireddevices/lora-mqtt/blob/master/mqtt.c

    Строки 499, 500, 502 память выделяется, освобождается в строках 526-528. До кода освобождения памяти есть return.
    Про длину функций, форматирование кода вцелом я вообще молчу. Как говорится советскую школу хер пропьешь.

    • “такие же индусы, как и везде”

    • А вообще, посмотрел там blame – обычное дело, год назад написано malloc и free, вставляем новый код, про free благополучно забыто. Книжка “почему си гавно”, глава первая. Если это все, что удалось найти и предъявить – то вполне себе нормальный код.

      • Михаил пишет:

        C не говно, а инструмент, позволяющий сделать то что ты хочешь, как ты хочешь и когда ты хочешь. А не как во всяких Java, когда объект создается не там, где написано new, а когда захочет Java-машина.

        По поводу говнокода от UD, я особо проблем и не искал, так прошелся по malloc/free. Просто ты любишь цитировать товарища Артамонова, вот пожалуйта код от его конторы.
        Помню делал когда-то контроллер для SMD-печки с его прошивкой. Тот код не отключал нагреватель после окончания программы, хорошо что вовремя заметил.
        Там аффтар забыл одну функцию дописать.

Ответить

Или воспользуйтесь входом по OpenID: