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

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // nullable types
    // C#
    int?
    // TypeScript
    int?
    // Kotlin
    int?
    // PHP
    ?int

    нет мочи терпеть это дерьмо

    Fike, 19 Ноября 2017

    Комментарии (37)
  3. Си / Говнокод #23546

    +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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    PHPAPI void php_var_export_ex(zval *struc, int level, smart_str *buf) /* {{{ */
    {
    	/* insignificant bullshit omitted */
    	zend_string *ztmp, *ztmp2;
    
    	switch (Z_TYPE_P(struc)) {
    		case IS_STRING:
    			ztmp = php_addcslashes(Z_STR_P(struc), 0, "'\\", 2);
    			ztmp2 = php_str_to_str(ZSTR_VAL(ztmp), ZSTR_LEN(ztmp), "\0", 1, "' . \"\\0\" . '", 12);
    
    			smart_str_appendc(buf, '\'');
    			smart_str_append(buf, ztmp2);
    			smart_str_appendc(buf, '\'');
    
    			zend_string_free(ztmp);
    			zend_string_free(ztmp2);
    			break;
    	}
    }
    /* }}} */

    Пыхарь: Расмус, у меня верстка едет, когда я через var_export() нулевые байты в браузер кидаю. Пофикси! (https://bugs.php.net/bug.php?id=37262)
    Расмус: Пофиксил тебе за щеку. Проверяй. (https://github.com/php/php-src/blob/master/ext/standard/var.c#L482)
    Пыхарь: Проверил. Помогло. (https://ideone.com/gnCKh1)

    Stallman, 16 Ноября 2017

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

    +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
    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
    import java.io.*;
    import java.math.RoundingMode;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    
    import java.util.Scanner;
    /*
    Число E
    
    (Время: 1 сек. Память: 16 Мб Сложность: 10%)
    Выведите в выходной файл округленное до n знаков после десятичной точки число E. 
    В данной задаче будем считать, что число Е в точности равно 2.7182818284590452353602875.
    */
    
    import static com.sun.org.apache.xml.internal.security.keys.keyresolver.KeyResolver.length;
    
    public class Main {
        public static void main(String args[]) throws IOException {
            
            Scanner scanner=new Scanner(System.in);
            int n=scanner.nextInt();
            NumberFormat numberFormat = new DecimalFormat("0.000000000000000000000000000");
            numberFormat.setRoundingMode(RoundingMode.DOWN);
            String a=numberFormat.format(Math.E);
            char[] arr=a.toCharArray();
            for(int i=0;i<n+2;i++){
                System.out.print(arr[i]);
            }
        }
    
        }

    Понять и простить

    ArthurMakaev, 15 Ноября 2017

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

    +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
    14. 14
    15. 15
    Если ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнПосещение" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.ПосещениеАвтосалона;
    		ЭтаФорма.Заголовок = НСтр("ru = 'Регистрация нового трафика. Посещение'");
    	ИначеЕсли ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнЗвонок" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.Звонок;
    		ЭтаФорма.Заголовок = НСтр("ru = 'Регистрация нового трафика. Звонок'");
    	ИначеЕсли ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнEmail" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.EmailДилера;
    		ЭтаФорма.Заголовок = НСтр("ru = 'Регистрация нового трафика. Email'");
    		ЭлементыФормы.полеТелефон.Картинка = БиблиотекаКартинок.Renault_Mail_New_20;
    		ЭлементыФормы.полеТелефон.Маска =  "";
    		
    	ИначеЕсли ЭтаФорма.ВладелецФормы.ТекущийЭлемент.Имя = "кнЛидRenault" Тогда
    		ТипТрафика = Справочники.CRM_ТипТрафика.ЛидДилера;
    	КонецЕсли;

    Фирменная CRM система от Renault. Определения типа трафика по имени активного элемента владельца формы.

    NioGoth, 15 Ноября 2017

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

    +2

    1. 1
    https://shmat-razum.blogspot.com/2012/12/blog-post.html

    Есть такое правило, к которому все привыкли: если в программе записано логическое выражение с and, и первое подвыражение оказалось равно false, то второе не вычисляется. Аналогично с or: если первое подвыражение равно true, второе не вычисляется. Это позволяет удобно записывать вещи вида

    if (index < 0 || array[index] == NULL)
    ...

    или
    if (index >= 0 && array[index] == ptr)
    ...


    Это правило действует во всех широко используемых языках программирования: C/C++, Java, C#, Javascript, Python, а также в многочисленных представителях семейств лиспов и смолтоков. И даже в Хаскеле. И даже в PL/SQL. У правила есть название: закорачивание логических связок (short-circuit evaluation). Казалось, оно само собой разумеется, и есть во всех языках.

    При столкновении с языком Fortran автора ждал сильный удар. Закорачивание в этом языке не просто не действует, а может действовать или не действовать в зависимости от воли компилятора. Эта неопределённость закреплена в стандарте. При этом, в интеловском компиляторе, например, просто нет ключа, чтобы этим управлять. Программист не может быть уверен, что выполнится лишь одна ветвь; в то же время, он не может быть уверен, что выполнятся обе. Поведение может зависеть от номера версии компилятора и настроек оптимизации.

    j123123, 15 Ноября 2017

    Комментарии (29)
  7. bash / Говнокод #23523

    +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
    14. 14
    15. 15
    kvm_rpm_table="[censored]/function/html/data.htm"
    xen_rpm_table="[censored]/function/html/data1.htm"
    
    if [ $1 != "kvm" ] && [ $1 != "xen" ]; then
        echo "Please, specify kvm or xen"
        exit 1
    fi
    
    if [ $1 != "kvm" ]; then
        line=`wget $kvm_rpm_table -q -S -O - 2>&1 | grep 'Download' -m1`;
    fi
    
    if [ $1 != "xen" ]; then
        line=`wget $xen_rpm_table -q -S -O - 2>&1 | grep 'Download' -m1`;
    fi

    По какой-то причине человек решил задефайнить в переменную про KVM страницу со ссылками на ядра с Xen, а в перменную про Xen -- страницу со ссылками на ядра с KVM. Чем и вызван весь дальнейший цирк.

    ru_maniac, 13 Ноября 2017

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function isLogged() {
              return '0';
              return '';
    }
    
    function getForumPrefix() {
             return 'forum/';
    }

    https://dota2.ru/forum/

    GreatMASTERcpp, 13 Ноября 2017

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

    +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
    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
    [0mSaving to: ���jdk-8u131-linux-x64.tar.gz���
    
      2050K .......... .......... .......... .......... ..........  1%  137K 4m16s
      2100K .......... .......... .......... .......... ..........  1% 1.06M 4m14s
      2150K .......... .......... .......... .......... ..........  1%  613K 4m14s
      2200K .......... .......... .......... .......... ..........  1%  318M 4m9s
      2250K .......... .......... .......... .......... ..........  1%  609K 4m10s
      2300K .......... .......... .......... .......... ..........  1%  612K 4m10s
      2350K .......... .......... .......... .......... ..........  1%  610K 4m11s
      2400K .......... .......... .......... .......... ..........  1%  612K 4m12s
      2450K .......... .......... .......... .......... ..........  1%  612K 4m13s
      2500K .......... .......... .......... .......... ..........  1%  616K 4m13s
      2550K .......... .......... .......... .......... ..........  1%  616K 4m14s
      2600K .......... .......... .......... .......... ..........  1%  614K 4m15s
      2650K .......... .......... .......... .......... ..........  1%  644K 4m15s
      2700K .......... .......... .......... .......... ..........  1% 1.15M 4m13s
      2750K .......... .......... .......... .......... ..........  1% 1.07M 4m11s
      2800K .......... .......... .......... .......... ..........  1%  306K 4m17s
      2850K .......... .......... .......... .......... ..........  1%  181M 4m13s
      2900K .......... .......... .......... .......... ..........  1%  307K 4m18s
      2950K .......... .......... .......... .......... ..........  1%  608K 4m19s
      3000K .......... .......... .......... .......... ..........  1%  421K 4m21s
      3050K .......... .......... .......... .......... ..........  1%  400K 4m24s
      3100K .......... .......... .......... .......... ..........  1%  605K 4m25s
      3150K .......... .......... .......... .......... ..........  1%  613K 4m25s
      3200K .......... .......... .......... .......... ..........  1%  611K 4m25s
      3250K .......... .......... .......... .......... ..........  1%  303K 4m30s
      3300K .......... .......... .......... .......... ..........  1% 1.34M 4m28s
      3350K .......... .......... .......... .......... ..........  1%  306K 4m32s
      3400K .......... .......... .......... .......... ..........  1%  394K 4m35s
      3450K .......... .......... .......... .......... ..........  1%  416K 4m37s
      3500K .......... .......... .......... .......... ..........  1%  401K 4m39s
      3550K .......... .......... .......... .......... ..........  1%  413K 4m41s
      3600K .......... .......... .......... .......... ..........  2%  421K 4m43s
      3650K .......... .......... .......... .......... ..........  2%  611K 4m43s
      3700K .......... .......... .......... .......... ..........  2%  610K 4m43s
      3750K .......... .......... .......... .......... ..........  2%  574K 4m43s
      3800K .......... .......... .......... .......... ..........  2%  610K 4m43s
      3850K .......... .......... .......... .......... ..........  2%  610K 4m43s
      3900K .......... .......... .......... .......... ..........  2%  611K 4m43s
      3950K .......... .......... .......... .......... ..........  2%  651K 4m43s
      4000K .......... .......... .......... .......... ..........  2%  613K 4m43s
      4050K .......... .......... .......... .......... ..........  2%  612K 4m43s
      4100K .......... .......... .......... .......... ..........  2% 1.08M 4m42s

    Дженкинс прислал телеграму: девопс потрудился наславу.
    (это только 0.5% от всего сообщения)

    wvxvw, 08 Ноября 2017

    Комментарии (115)
  10. C++ / Говнокод #23494

    +2

    1. 1
    2. 2
    3. 3
    //
    // TEMPLATE CLASS vector<bool, Alloc> AND FRIENDS
    //

    0xB друзей Вектора.
    via UCRT <vector>

    gost, 05 Ноября 2017

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

    +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
    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
    // куча if и небольшой кусок логики
    // ...
                   } else {
                      response["message"] = "Access Denied";
                      response.shortlist = undefined;
                      callback(response);
                    }
                  } else {
                    response["message"] = "Access Denied";
                    response.shortlist = undefined;
                    callback(response);
                  }
                } else {
                  response["message"] = "Access Denied";
                  response.shortlist = undefined;
                  callback(response);
                }
              });
            } else {
              response["message"] = "Access Denied";
              response.shortlist = undefined;
              callback(response);
            }
          } else {
            response["message"] = "Access Denied";
            response.shortlist = undefined;
            callback(response);
          }
        } else {
          response["message"] = "Access Denied";
          response.shortlist = undefined;
          callback(response);
        }
      } else {
        response["message"] = "Invalid Method";
        response.shortlist = undefined;
        callback(response);
      }

    rkgrep, 04 Ноября 2017

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