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

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

    +3

    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
    var owl3L = $('.owl-carousel3 .js__product').length;
        owl3L && $('.owl-carousel3').owlCarousel({
            ...
            responsive: {
                0: {
                    items: 1,
                    loop: owl3L > 1 ? true : false,
                    slideBy: 1
                },
                600: {
                    items: 2,
                    loop: owl3L > 2 ? true : false,
                    slideBy: 2
                },
                1000: {
                    items: 4,
                    loop: owl3L > 4 ? true : false,
                    slideBy: 4
                }
            }
        });

    Какой "Java Script"

    phpBidlokoder2, 29 Января 2020

    Комментарии (27)
  3. C++ / Говнокод #26357

    +3

    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
    // https://habr.com/ru/post/451830/  Кратко с реализацией о AES 128 ECB
    
    // ...
    
    byte_t hex(char ch) { return (ch - '0') % 39; }
    byte_t sbox(byte_t x, bool decrypt = false) {
      std::string s = (decrypt ? INV_SBOX : SBOX)[x >> 4][x & 15];
      return hex(s[0]) << 4 | hex(s[1]);
    }
    byte_t mult_by_2(byte_t x) { return (x < 128) ? x << 1 : (x << 1 & 0xff) ^ 0x1b; }
    byte_t mult_by_8(byte_t x) { return mult_by_2(mult_by_2(mult_by_2(x))); }
    
    const std::unordered_map<byte_t, std::function<byte_t(byte_t)>> mapper = {
      {0x1, [](byte_t x) { return x; }},
      {0x2, mult_by_2},
      {0x3, [](byte_t x) { return mult_by_2(x) ^ x; }},
      {0x9, [](byte_t x) { return mult_by_8(x) ^ x; }},
      {0xb, [](byte_t x) { return mult_by_8(x) ^ mult_by_2(x) ^ x; }},
      {0xd, [](byte_t x) { return mult_by_8(x) ^ mult_by_2(mult_by_2(x)) ^ x; }},
      {0xe, [](byte_t x) { return mult_by_8(x) ^ mult_by_2(mult_by_2(x)) ^ mult_by_2(x); }},
    };
    byte_t vector_mult(const std::array<byte_t, 4>& v1, std::array<byte_t, 4>&& v2) {
      std::transform(begin(v1), end(v1), begin(v2), begin(v2),
        [](byte_t x, byte_t y) { return mapper.at(y)(x); });
      return std::accumulate(begin(v2), end(v2), byte_t(0), std::bit_xor<byte_t>());
    }
    
    
    const std::vector<std::vector<std::string>> SBOX = { // блядь сука долбоеб нахуя это так делать?
      { "63", "7c", "77", "7b", "f2", "6b", "6f", "c5", "30", "01", "67", "2b", "fe", "d7", "ab", "76" },
      { "ca", "82", "c9", "7d", "fa", "59", "47", "f0", "ad", "d4", "a2", "af", "9c", "a4", "72", "c0" },
      { "b7", "fd", "93", "26", "36", "3f", "f7", "cc", "34", "a5", "e5", "f1", "71", "d8", "31", "15" },
      { "04", "c7", "23", "c3", "18", "96", "05", "9a", "07", "12", "80", "e2", "eb", "27", "b2", "75" },
      { "09", "83", "2c", "1a", "1b", "6e", "5a", "a0", "52", "3b", "d6", "b3", "29", "e3", "2f", "84" },
    // ...

    пиздец нахуй

    j123123, 16 Января 2020

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

    +3

    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
    Разработчикам непомерно переплачивают
    
    
    Еще в 1970 году были отличные разработчики, которые построили фундамент для всего,
    что мы используем сейчас. Они были невероятно талантливы и чрезвычайно скромны.
    И то и другое одинаково важно. Они выполняли свою работу как самые ранние исследователи,
    в пустыне знаний и под ураганами ошибок, простите уж мне мой высокопарный слог.
    Я никогда не слышал, чтобы отсутствие вертикального монитора или стоящего
    стола — мешали им делать все возможное, да и невозможное тоже.
    
    Всему, что у нас есть, мы обязаны им. Они были элитой. Мы — нет.
    
    Это в общем-то означает, что мы, вероятно, должны перестать просить
    бонусы к нашим уже и так непомерно раздутым зарплатам, перестать ныть
    и перестать требовать лучшей жизни. У нас уже есть одна.

    Охуенный наброс говна на вентилятор, ящитаю!

    https://habr.com/ru/post/483592/

    gost, 12 Января 2020

    Комментарии (64)
  5. C++ / Говнокод #26328

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    while ( port->available() )
            {
                au8Buffer[ u8BufferSize ] = port->read();
                u8BufferSize ++;
    
                if (u8BufferSize >= MAX_BUFFER) bBuffOverflow = true;
            }

    Если буфер переполнился – попробуем это запомнить и... продолжим затирать память! Реальный кусок из библиотеки работы с RS485 – протоколом, применяющимся в промышленных контроллерах и все такое.

    smart, 08 Января 2020

    Комментарии (20)
  6. C++ / Говнокод #26324

    +3

    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
    template <typename T>
    void f() {
         if constexpr (std::is_arithmetic_v<T>)
             // ...
         else
           static_assert(false, "Must be arithmetic"); // ill-formed: invalid for every T
    }
    
    // The common workaround for such a catch-all statement is a type-dependent expression that is always false:
    template<class T> struct dependent_false : std::false_type {};
    template <typename T>
    void f() {
         if constexpr (std::is_arithmetic_v<T>)
             // ...
         else
           static_assert(dependent_false<T>::value, "Must be arithmetic"); // ok
    }

    То есть «static_assert(false)» в шаблоне — это UB. Чтобы оно было не UB и можно было спокойно отключать ненужные специализации — надо городить ёбанный костыль. Пиздец. Почему стандартизаторы не могут просто взять и сделать что-то удобное? Что-то, для чего не требуется городить по десятку костылешаблонов, заставляющих его работать? Что-то без ёбанной явной специализации для bool? Почему любой высер крестокомитета обязательно должен быть максимально сложным, вербозным, неочевидным говном с кучей подводных камней и UB?

    gost, 06 Января 2020

    Комментарии (31)
  7. C++ / Говнокод #26205

    +3

    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
    #include <iostream>
     
    using namespace std;
     
    class lock_guard_ext{
    public:
        lock_guard_ext() { cout << "lock_guard_ext ctor" << endl; }
        ~lock_guard_ext() { cout << "lock_guard_ext dtor" << endl; }
    };
     
    struct Access {
        lock_guard_ext lock;
        int & ref_to_value;
    };
     
    int & t() {
        throw 0;
    }
    
    Access foo1() {
        return { {}, t() };
    }
     
    int main () {
        try {
            volatile auto a = foo1();
        } catch (int) {
     
        }
    }

    В шланге деструктор вызывается, в gcc не вызывается.
    https://wandbox.org/permlink/7sbsqzhbo0o7dOse

    j123123, 12 Декабря 2019

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

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    {{ order.type === '2' && order.orderAddress ?
                      ` ${$store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress) && $store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress)['a:StreetLine']._text ? $store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress)['a:StreetLine']._text : ''} ${$store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress) ? $store.getters['delivery/points'].find(item => item['a:DeliveryShopId']._text === order.orderAddress)['a:House']._text : ''}`
                    :
                    order.clientAddress
                    ?
                      ` ${$store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:SettlementName'] && $store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress) && $store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:SettlementName']._text ? $store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:SettlementName']._text + ',' : ''} ${$store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:StreetLine']._text} ${$store.getters['delivery/clientAddresses'].find(item => item['a:ClientAddressId']._text === order.clientAddress)['a:House']._text}`
                    :
                    '' }}

    именно так профессиональные разработчики мобильных приложений получают строку с адресом магазина или пользователя.

    jerk_thehuman, 08 Декабря 2019

    Комментарии (10)
  9. Java / Говнокод #26055

    +3

    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
    /**
         * Four state boolean.
         */
        enum Bool {
            /** */
            FALSE,
    
            /** */
            TRUE,
    
            /** */
            READY,
    
            /** */
            DONE
        }

    MAKAKA, 27 Ноября 2019

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

    +3

    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
    <?
    
    function russian_date($input) {
        $date=explode("-", date("Y-m-d",strtotime($input)));
        switch ($date[1]) {
            case 1: $m='ЯНВАРЬ'; break;
            case 3: $m='МАРТ'; break;
            case 4: $m='АПРЕЛЬ'; break;
            case 5: $m='МАЙ'; break;
            case 6: $m='ИЮНЬ'; break;
            case 2: $m='ФЕВРАЛЬ'; break;
            case 7: $m='ИЮЛЬ'; break;
            case 8: $m='АВГУСТ'; break;
            case 9: $m='СЕНТЯБРЬ'; break;
            case 10: $m='ОКТЯБРЬ'; break;
            case 11: $m='НОЯБРЬ'; break;
            case 12: $m='ДЕКАБРЬ'; break;
        }
        echo ($m.' '.$date[0]);
    }
    
    ?>

    Образцовый код из одного мегапроекта от профессионалов.
    Такие монстры рождаются, когда не знаешь о локали.

    petja, 14 Сентября 2019

    Комментарии (24)
  11. PHP / Говнокод #25769

    +3

    1. 1
    2. 2
    $this->imageurl      = str_replace('http' , 'https', (string)$data['imageurl']);
    $this->largeimageurl = str_replace('http' , 'https', (string)$data['largeimageurl']);

    striker, 20 Августа 2019

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