1. Си / Говнокод #5722

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    static int getDns(int eid, webs_t wp, int argc, char_t **argv)
    {
            //....тут были еще переменные...
            int type, idx = 0, req = 0;
    
            if (ejArgs(argc, argv, T("%d"), &type) == 1) {
                    if (1 == type)
                            req = 1;
                    else if (2 == type)
                            req = 2;
                    else
                            return websWrite(wp, T(""));
            }
            //...дальше операции с req...
    }

    Такой вот китайский код демона goahead, пользуемого в embedded железяках...

    Запостил: NiTr0man, 19 Февраля 2011

    Комментарии (10) RSS

    • И?
      Ответить
      • код демона же. генетический.
        Ответить
      • Заведение отдельной переменной, единственная суть которой - фильтрация входных данных, и которую вместе со всеми извращениями можно было бы заменить одной строкой if (type<1||type>2) return бла-бла-бла...
        P.S. Там же, только в яваскриптах веб-обвязки, не менее шедевральные говнокоды последовательной проверки валидности введенных переменных полотнами на пару экранов текста - вместо того, чтобы забить их в массив и запустить проверку в цикле.
        Ответить
        • Т.е. говнокод только в том, в том, что вместо двух переменных type и req можно было бы использовать одну? Ну да это мелочь, с таким сюда даже стыдно.
          Ответить
          • Говнокод в том, что реализуется через жопу. Будь там скажем 5 значений - думается, это же растянули бы на 5 if...else if
            Хотя что с китайцев взять...
            Ответить
            • А если бы значения req не соответствовали бы значениям type? Будь там 5 значений, вероятность этого была бы больше. Приведённый код не даёт уверенности, что это именно говнокод, а не временный код в процессе разработки.
              Ответить
              • Угу, а если бы у бабушки был член - она бы была дедушкой.
                Конкретно этот код - из функции получения списка ДНС, type - порядковый номер записи. И из кода четко видно, что req присваивается значение type если оно равно 1 или 2, иначе - завершение.
                И код этот не временный процесса разработки, а вполне себе из готового продукта, поставляемого в комплекте как SDK для разработчиков девайсов на Ralink SoC, так и собссно в комплекте готовых устройств на этой платформе.
                Ответить
                • >Угу, а если бы у бабушки был член - она бы была дедушкой.
                  Не угу.
                  Женщин отличает от мужчины не наличие "причиндалов" (сейчас всякие операции проводят), а потенциальная запрограммированная возможность вынашивать и рожать детей (XX-хромосома).
                  Ответить
    • ради интереса загуглил, оказался сайтик в копроративном стиле, а на там список фич, одной из них, видимо, жутко гордятся, т.к. включили в список дважды:
      * Security via HTTP 1.0 basic encoding
      Ответить

    Добавить комментарий