1. Лучший говнокод

    В номинации:
    За время:
  2. C++ / Говнокод #25185

    0

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    class TcpClient
    {
    public:
        //...
        enum ErrCode{
            REZ_OK = 0,
            REZ_ERR,
            REZ_NO_NEW_DATA,
            REZ_NEW_DATA
        };
        //...
    };
    ...
    class UdpPort
    {
    public:
        //...
        enum ErrCode{
            REZ_OK = 0,
            REZ_ERR,
            REZ_NO_NEW_DATA,
            REZ_NEW_DATA
        };
        //...
    };
        //...
        // Потом в коде:
        ErrCode rez = (rtcPort_.setupPort(portSettings) == WrapperSystemSockets::UdpPort::ErrCode::REZ_OK) ? ErrCode::REZ_OK : ErrCode::REZ_ERR;

    Enum головного мозга.

    elapidae, 13 Декабря 2018

    Комментарии (8)
  3. PHP / Говнокод #25151

    +1

    1. 1
    2. 2
    3. 3
    if (!is_null($model->parent_id)) {
                    $id = FaqCategory::find()->where(["id" => $model->parent_id])->one()->id;
    }

    Как получить ID дочерней категории, которое у вас уже есть

    den_rad, 05 Декабря 2018

    Комментарии (8)
  4. JavaScript / Говнокод #25142

    −1

    1. 1
    2. 2
    3. 3
    d = new Date();
    ds = d.getHours() + ":" + (d.getMinutes() / 100).toFixed(2).split(".")[1] + ":" + (d.getSeconds() / 100).toFixed(2).split(".")[1];
    // а как бы вы сделали это красивее, в одну строчку (или две) и без сторонних библиотек?

    Вывод времени с нулями в минутах и секундах (если они меньше 10): 5:05:00, 11:01:01, 23:03:03
    Чтобы в логах (при чтении с моноширинным шрифтом) время имело одинаковую ширину.
    // P.S.: к сожалению в JS нет стандартной функции format для даты.

    epicode, 03 Декабря 2018

    Комментарии (8)
  5. 1C / Говнокод #25093

    +1

    1. 1
    Выб = выбратьизсписка(элемент.списоквыбора,элемент);

    СИДЕЛ НАД ЭТОЙ ХУЕТОЙ ДЖВА ЧАСА, И НЕ ПОНИМАЛ ПОЧЕМУ ЭТОТ КУСОК НЕОТРАБАТЫВАЛ И ВОЗВРАЩАЛ НЕОПРЕДЕЛЕНО И СРАЗУ ЖЕ ПРОСКАКИВАЛ ДАЛЬШЕ. ХОТЯ ЭЛЕМЕНТ И СПИСОК ЕСТЬ, ПОИДЕИ ДОЛЖЕН БЫЛ ПОВЫСНУТЬ В ОЖИДАНИИ ПОКА ПОЛЬЗОВАТЕЛЬ ВЫБЕРЕТ ИЗ НЕГО ЗНАЧЕНИЕ.

    ОКАЗАЛОСЬ. ОТЛАДЧИК... РЕШИЛ ВЫЗЫВАТЬ САМ СЕБЕ ЭТОТ СПИСОК И САМ ПО СЕБЕ НИХУЯ НЕ ВЫБИРАТЬ.

    TOPT, 19 Ноября 2018

    Комментарии (8)
  6. Си / Говнокод #25084

    0

    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
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    while (*str) {
          if (i >= n)
             return NULL;
          if (!(*str & 0x80))
             buffer[i++] = *str++;
          else if ((*str & 0xe0) == 0xc0) {
             if (*str < 0xc2) return NULL;
             c = (*str++ & 0x1f) << 6;
             if ((*str & 0xc0) != 0x80) return NULL;
             buffer[i++] = c + (*str++ & 0x3f);
          } else if ((*str & 0xf0) == 0xe0) {
             if (*str == 0xe0 && (str[1] < 0xa0 || str[1] > 0xbf)) return NULL;
             if (*str == 0xed && str[1] > 0x9f) return NULL; // str[1] < 0x80 is checked below
             c = (*str++ & 0x0f) << 12;
             if ((*str & 0xc0) != 0x80) return NULL;
             c += (*str++ & 0x3f) << 6;
             if ((*str & 0xc0) != 0x80) return NULL;
             buffer[i++] = c + (*str++ & 0x3f);
          } else if ((*str & 0xf8) == 0xf0) {
             if (*str > 0xf4) return NULL;
             if (*str == 0xf0 && (str[1] < 0x90 || str[1] > 0xbf)) return NULL;
             if (*str == 0xf4 && str[1] > 0x8f) return NULL; // str[1] < 0x80 is checked below
             c = (*str++ & 0x07) << 18;
             if ((*str & 0xc0) != 0x80) return NULL;
             c += (*str++ & 0x3f) << 12;
             if ((*str & 0xc0) != 0x80) return NULL;
             c += (*str++ & 0x3f) << 6;
             if ((*str & 0xc0) != 0x80) return NULL;
             c += (*str++ & 0x3f);
             // utf-8 encodings of values used in surrogate pairs are invalid
             if ((c & 0xFFFFF800) == 0xD800) return NULL;
             if (c >= 0x10000) {
                c -= 0x10000;
                if (i + 2 > n) return NULL;
                buffer[i++] = 0xD800 | (0x3ff & (c >> 10));
                buffer[i++] = 0xDC00 | (0x3ff & (c      ));
             }
          } else
             return NULL;
       }

    // Windows stupidly treats 8-bit filenames as some dopey code page,
    // rather than utf-8. If we want to use utf8 filenames, we have to
    // convert them to WCHAR explicitly and call WCHAR versions of the
    // file functions. So, ok, we do.

    govnokod3r, 13 Ноября 2018

    Комментарии (8)
  7. PHP / Говнокод #25071

    −1

    1. 1
    Если есть "mysql_real_escape_string", то где тогда "mysql_real_unescape_string"?

    real_escape_string, 09 Ноября 2018

    Комментарии (8)
  8. Куча / Говнокод #25051

    −3

    1. 1
    2. 2
    3. 3
    4. 4
    Два дебила хотели надрочить кармы,
    но передрочились 
    https://habr.com/post/428706/
    https://habr.com/post/428734/

    Perevedi_na_PHP, 04 Ноября 2018

    Комментарии (8)
  9. PHP / Говнокод #24829

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $price = WC()->cart->get_product_price( $_product );
    $price = str_replace('<span class="woocommerce-Price-amount amount">', '', $price);
    $price = str_replace(' <span class="woocommerce-Price-currencySymbol"><span class="rur">р<span>уб.</span></span></span></span>', '', $price);
    
    $price = str_replace(',', '', $price);
    $price = str_replace(' ', '', $price);
    $price = str_replace('.', '', $price);
    $price_m2 = round($price/25.2);
    echo '<span class="woocommerce-Price-amount amount">'.$price_m2.' <span class="woocommerce-Price-currencySymbol"><span class="rur">р<span>уб.</span></span></span></span><span class="awspn_price_note"> / м<sup>2</sup></span>';

    Привет, меня зовут Вася!
    Как-то раз на одном из сайтов с WooCommerce мне нужно было в корзине вывести цену листового товара за метр квадратный. Ну а че, листа размера не 25.2м2 не существует, а еще на php.net я прочитал про функцию str_replace. И так сойдет! :)

    Vasya_Kostylkov, 27 Сентября 2018

    Комментарии (8)
  10. PHP / Говнокод #24785

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $data = new stdClass();
      $data->receivers_list = [];
      $data->receivers_list[0] = new stdClass();
      $data->receivers_list[0]->address = $user_wallet;
      $data->receivers_list[0]->amount = $amount;

    Кусок кода, от проекта, который мне теперь надо поддерживать.

    spacel0rd, 18 Сентября 2018

    Комментарии (8)
  11. Си / Говнокод #24720

    0

    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
    16. 16
    17. 17
    18. 18
    #define double 1
    #define float 2
    
    #if REAL==float
    #define fft_create_arrays f_fft_create_arrays
    #define getx f_getx
    #define fft f_fft
    #define invfft f_invfft
    #define normalize_fft f_normalize_fft
    #define fft1n f_fft1n
    #define fftn f_fftn
    #define invfftn f_invfftn
    #define realfftmag f_realfftmag
    #define normalize_fftn f_normalize_fftn
    #endif
    	
    #undef double
    #undef float

    https://github.com/borsboom/vocoder/blob/master/fft.h

    gammaker, 05 Сентября 2018

    Комментарии (8)