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

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

    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
    https://habr.com/ru/company/vk/blog/527420/
    
    ВКонтакте снова выкладывает KPHP 
    
    ....
    
    Сгенерировать С++ из PHP — этого мало. Собственно говоря, это самое простое.
    
    Во-первых, в PHP мы используем кучу функций стандартной библиотеки: header(),
     mb_strlen(), curl_init(), array_merge(). Их тысячи — и все должны быть
    реализованы внутри KPHP с учётом типизации и работать так же, как в PHP.
    Реализация всего PHP stdlib (а также KPHP-дополнений), всех PHP-типов с
    операциями и допущениями — это называется runtime, вон там квадратик сверху.
    
    Во-вторых, PHP-сайт — это веб-сервер. Следовательно, и в KPHP должна быть вся
    серверная часть, чтобы можно было в том же nginx подменить PHP-шный upstream
    на KPHP-шный — и всё продолжало работать так же. KPHP поднимает свой веб-сервер,
    оркестрирует процессы, заполняет суперглобалы и переинициализирует состояние,
    как и PHP… Это тоже хардкорная часть — называется server, квадратик снизу.
    
    И только имея результирующий код C++, написанные runtime и server, всё это можно
    объединить и отдать на откуп плюсовым компиляторам. Мы используем g++ — там в
    диаграмме есть квадратик g++. Но не совсем так: у vk.com настолько огромная
    кодовая база, что этот компилятор не справляется, и поэтому мы применяем патченный
    distcc для параллельной компиляции на множестве агентов. В итоге всё линкуется в
    один огромный бинарник (это весь vk.com), он раскидывается на кучу бэкендов и
    синхронно перезапускается. Каждая копия запускает мастер-процесс, который порождает
    группу однопоточных воркеров. Вот они на самом деле и исполняют исходный PHP-код.
    
    Многие технические проблемы остаются за кадром — их не опишешь в статье на Хабре.
    Чего стоит один только сбор трейсов при ошибках: ведь в С++ не получить
    человекочитаемый стек, а хочется разработчику вообще его на PHP-код намаппить.
    Гигантское количество внутренних нюансов, множество подпорок и легаси — но в итоге
    продукт хорошо работает и развивается.

    PHP и C++... два говна нашли друг друга

    j123123, 11 Ноября 2020

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

    0

    1. 1
    2. 2
    Trying to get property '%s' of non-object:   Notice -> Warning
    Undefined property: %s::$%s                  Notice -> Warning

    тут брейкинг ченджес подвезли

    https://wiki.php.net/rfc/engine_warnings

    Fike, 14 Сентября 2020

    Комментарии (46)
  4. Java / Говнокод #26892

    0

    1. 1
    2. 2
    @Test
    public void getTestcases_OffsetEqTwoAndLomitEqTen_ReturnTwoTestcasesInResponse()

    Йажа - это не язык программирования, это состояние сознания

    roflannister, 27 Августа 2020

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

    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
    template <typename T, size_t size>
    pure_nfsv4_op_array_tools::get_max_priority_opindex(
        const std::array<T, size>& array, const std::unordered_map<uint32_t, uint32_t>& priority_map size_t pos = 0)
    {
        std::unordered_map<uint32_t, uint32_t>::const_iterator it, it_end = priority_map.end();
        uint32_t max_priority = 0;
        size_t i_max_priority = size;
        for(; pos < size; ++pos)
        {
            it = priority_map.find(array[pos].opcode)
            priority = (it != it_end) ? it->second : 4;   // Анскилл
            // лучше так:
            // priority = get_priority(opcode);
            if (priority > max_priority)
            {
                i_max_priority = pos;
                max_priority = it->second;
            }
        }
    
        return i_max_priority;
    }

    Какой дизайн-паттерн применить, если priority_map содержится в классе, методы которого используют эту функцию как вспомогательную?
    То есть текущий файл подключается в файл-декларацию класса?
    Можно, конечно, подключить его в .cc, но проблема останется.

    OlegUP, 19 Июня 2020

    Комментарии (46)
  6. JavaScript / Говнокод #26737

    +2

    1. 1
    2. 2
    3. 3
    nameState() {
        return this.name.length > 2 ? true : false
    }

    Из документации Bootstrap Vue
    https://bootstrap-vue.org/docs/components/form-input#contextual-states

    JonMagon, 06 Июня 2020

    Комментарии (46)
  7. JavaScript / Говнокод #26691

    +2

    1. 1
    2. 2
    3. 3
    function isNative (Ctor){
      return typeof Ctor === 'function' && /native code/.test(Ctor.toString())
    }

    https://habr.com/ru/company/ruvds/blog/503634/
    >>> 5 интересных JavaScript-находок, сделанных в исходном коде Vue

    gost, 26 Мая 2020

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

    −1

    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
    let windows = [];
    		for(let i=0;i<30;i++) {
    			windows.push(open('about:blank', 'w'+i, 'width=220,height=220'));
    			windows[windows.length-1].document.write('<img width="200" src="https://yandex.ru/images/_crpd/QXyR57D17/58778cEG/ztbSEyQN1MQPOKIh-mQphsVGWJdV_rEIEfYazmN1g0xPpX0igbVWfIKWpfMEAObKC6K6ZWrKj3oC51h2Nj70EtoS5kOEGYXVP10XoFpA">');
    		}
    		let x = 0;
    		for(let i=0;i<30;i++) {
    			setTimeout(function run() {
    				if(x > 10000) {
    					windows[i].close();
    					return;
    				}
    				x++;
    				windows[i].moveTo((Math.random()*screen.width).toFixed(), (Math.random()*screen.height).toFixed());
    				setTimeout(run, 100);
    			});
    		}

    Мой лучший гавнакод

    codershitter, 27 Декабря 2019

    Комментарии (46)
  9. Assembler / Говнокод #25867

    +1

    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
    #include <stdbool.h>
    
    bool impl(bool a, bool b) // ->
    {
        return (!a || b);
    }
    
    bool always_true(bool a, bool b)
    {
        return (impl(a,b) == impl(b,a)) == (a == b); // ( (a -> b) = (b -> a) ) = (a = b) tautology
    }
    
    /*
    GCC не хочет мне тавтологию оптимизировать!
    https://godbolt.org/z/kgFMpR
    always_true:
            movl    %esi, %eax
            xorl    %edi, %eax
            cmpb    %dil, %sil
            sete    %dl
            xorl    %edx, %eax
            ret
    Но Clang может
    https://godbolt.org/z/YcOat-
    always_true:                            # @always_true
            movb    $1, %al
            retq
    */

    ГОВНО!

    j123123, 24 Сентября 2019

    Комментарии (46)
  10. JavaScript / Говнокод #25464

    +2

    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
    <script>
          qqq = 0;
            setInterval(function(){
                qqq++; 
                if ( qqq == 1 ) $('.qqq').text('.');  
                else if ( qqq == 2 ) $('.qqq').text('..');  
                else if ( qqq == 3 ) $('.qqq').text('...'); 
                else {
                    $('.qqq').empty(); 
                    qqq = 0;
                }
            },900);
       </script>

    Многоточия...
    Встретил случайно в одном из сайтов)

    fuckall, 21 Марта 2019

    Комментарии (46)
  11. Python / Говнокод #25409

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    import ctypes, sys
    if ctypes.windll.shell32.IsUserAnAdmin():
        if __name__ == "__main__":
            main()
    else:
            ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)

    Ав тозапуск с пра вами адми нис тра тора
    Для авто запус ка мы будем исполь зовать сле дующий код:

    Те перь при попыт ке запус тить скрипт вызов будет передан на UAC (если акти‐
    вен) и откро ется новое окно тер минала, где наш код выпол нится от име ни
    адми нис тра тора.
    Ес ли такой вари ант не устра ивает, то всег да мож но вос поль зовать ся
    готовы ми решени ями.
    --------------
    Ксакеп. if __name__ == "__main__" не там стоит, автор не понял что это такое.

    syoma, 26 Февраля 2019

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