1. JavaScript / Говнокод #27106

    0

    1. 1
    https://tproger.ru/articles/frontend-roadmap-2021/

    Как много надо учить ради того, чтобы клепать красивые формочки.
    Они там совсем ебанулись?

    YpaHeLI_, 12 Ноября 2020

    Комментарии (128)
  2. C++ / Говнокод #27105

    +1

    1. 1
    2. 2
    using T = int;
    0 .T::~T();

    Чем-то меня эта (полностью валидная) коньструкция очаровала.

    gost, 12 Ноября 2020

    Комментарии (25)
  3. 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)
  4. Си / Говнокод #27103

    +1

    1. 1
    #define LEAP_YEAR_OR_NOT(year)( ( year % 4 ) ? ( 0 ) : ( 1 ) )

    Тот кто это писал, видимо рассуждал примерно так:

    - В 2100 году это конечно забагует, но это будет уже не моя проблема.

    j123123, 11 Ноября 2020

    Комментарии (41)
  5. Java / Говнокод #27101

    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
    package java.util;
    
    public final class Optional<T> {
        public<U> Optional<U> map(Function<? super T, ? extends U> mapper) {
            Objects.requireNonNull(mapper);
            if (!isPresent())
                return empty();
            else {
                return Optional.ofNullable(mapper.apply(value));
            }
        }
    }

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

    Fike, 11 Ноября 2020

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

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    <?php declare(strict_types=1);
    /**
     * This file is part of Swoft.
     *
     * @link     https://swoft.org
     * @document https://swoft.org/docs
     * @contact  [email protected]
     * @license  https://github.com/swoft-cloud/swoft/blob/master/LICENSE
     */
    
    namespace Database;
    
    use Swoft;
    use Swoft\SwoftComponent;
    
    /**
     * Class AutoLoader
     *
     * @since 2.0
     */
    class AutoLoader extends SwoftComponent
    {
        /**
         * Class constructor.
         */
        public function __construct()
        {
            parent::__construct();
    
            Swoft::setAlias('@database', dirname(__DIR__) . '/database');
        }
    
        /**
         * @return array
         */
        public function getPrefixDirs(): array
        {
            return [
                __NAMESPACE__ => __DIR__,
            ];
        }
    
        /**
         * @return array
         */
        public function metadata(): array
        {
            return [];
        }
    }

    https://github.com/swoft-cloud/swoft/blob/master/database/AutoLoader.php

    MAPTbIwKA, 10 Ноября 2020

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

    −3

    1. 1
    Обращение.

    Антонио, перепиши этот сайт на современный стек технологий. Очень рекомендую:
    - Vue или React
    - NodeJS или Go
    - MongoDB
    - побольше AJAX-а
    Очень неютно находиться на технически устаревшем сайте - какой-то колхозный PHP, голый HTML, JS и jQuery... Твоим сайтом хочется гордиться, а не блеваться от него.
    Новые фичи добавлять необязательно.

    rotoeb, 10 Ноября 2020

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

    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
    $snippet = preg_split('/'. $qs .'/i', $replace);
            $c = 1;
            foreach( $snippet as $snip ) {
              $length  = strlen( $snip ) * .3;
              $xlength = strlen( explode( $qs, $snip )[0] ); 
              if( $c % 2 !== 0 ) {
                $highlight_1 = substr( $snip, $xlength * .3, $xlength );
              }
              else {
                $highlight_2 = substr( $snip, 0, $length );
              }
              $c++;
            }
            $output .= '<dfn class="revolver__search-snippet">... '. preg_replace("#[^а-яА-ЯA-Za-z:;._,? -]+#u", '', $highlight_1) . '<mark>'. $qs .'</mark>'. preg_replace("#[^а-яА-ЯA-Za-z:.;_,? -]+#u", '', $highlight_2) .' ...</dfn></li>';

    Pick — самая маленькая поисковая система на PHP и MySQL
    Здесь пришлось повозиться. Простой подход совсем не подразумевал, что PHP начнет обрабатывать UTF-8 корректно, но я смог добиться работы с русским и английским языками.

    https://habr.com/post/526652

    gost, 08 Ноября 2020

    Комментарии (13)
  9. Python / Говнокод #27094

    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
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    #Это калькулятор
    t=input("Введите колличество чисел (2 или 3): ")
    if t == '3':
    	one=float(input("Введите первое число: "))
    	two=float(input("Введите второе число: "))
    	three=float(input("Введите третье число: "))
    	n=input("Введите первый знак: ")
    	if n != '+' and n != '-' and n != '*' and n != '/' :
    		print("Вы написали что-то неправильно")
    	else:
    		m=input("Введите второй знак: ")
    		if m != '+' and m != '-' and m != '*' and m != '/' :
    			print("Вы написали что-то неправильно")
    		else:
    			if n == '+':
    				if m == '+':
    					rez=one+two+three
    					print(rez)
    				elif m == '-':
    					rez=one+two-three
    					print(rez)
    				elif m == '*':
    					rez=one+two*three
    					print(rez)
    				elif m == '/':
    					rez=one+two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			elif n == '-':
    				if m == '+':
    					rez=one-two+three
    					print(rez)
    				elif m == '-':
    					rez=one-two-three
    					print(rez)
    				elif m == '*':
    					rez=one-two*three
    					print(rez)
    				elif m == '/':
    					rez=one-two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			elif n == '*':
    				if m == '+':
    					rez=one*two+three
    					print(rez)
    				elif m == '-':
    					rez=one*two-three
    					print(rez)
    				elif m == '*':
    					rez=one*two*three
    					print(rez)
    				elif m == '/':
    					rez=one*two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			elif n == '/':
    				if m == '+':
    					rez=one/two+three
    					print(rez)
    				elif m == '-':
    					rez=one/two-three
    					print(rez)
    				elif m == '*':
    					rez=one/two*three
    					print(rez)
    				elif m == '/':
    					rez=one/two/three
    					print(rez)
    				else:
    					print("Вы написали что-то неправильно")
    			else:
    				print("Вы написали что-то неправильно")
    elif t == '2':
    	z=input("Введите знак: ")
    	if z != '+' and z != '-' and z != '*' and z != '/' :
    		print("Вы написали что-то неправильно")
    	else:
    		one=float(input("Введите первое число: "))
    		two=float(input("Введите второе число: "))
    		if z == '+':
    			rez=one+two
    			print(rez)
    		elif z == '-':
    			rez=one-two
    			print(rez)
    		elif z == '*':
    			rez=one*two
    			print(rez)
    		elif z == '/':
    			rez=one/two
    			print(rez)
    		else:
    			print("Вы написали что-то неправильно")
    else :
    	print("Вы написали что-то неправильно")

    Как можно сократить говнокод? Просто интересно... Спасибо)

    ilyaclover000, 08 Ноября 2020

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function in_array(what, where) {
        for(var i=0; i<where.length; i++)
            if(what == where[i])
                return true;
        return false;
    }

    Когда PHP'шному быдлокодеру не хватило функций в Javascript

    SagePtr, 07 Ноября 2020

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