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

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

    +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
    Pyhton 2:
    >>> (2**54/1) + 10 - 10 == 2**54
    True
    
    >>> (2**64/1) + 10  == 2**64
    False
    
    Pyhton 3:
    
    >>> (2**54/1) + 10 - 10 == 2**54
    False
    
    >>> (2**64/1) + 10  == 2**64
    True

    Pyhton 2: https://ideone.com/iqwl8L
    Pyhton 3: https://ideone.com/ltG9Fq

    Ну охуеть теперь.
    x + 10 - 10 != x в общем случае - это норма?
    Я всё понимаю - тяжёлое детство, инты, прибитые к железу, но на кой чёрт в современных интерпретируемых языках такое говнище?

    3.14159265, 13 Марта 2018

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

    +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
    // https://github.com/Samsung/ADBI/blob/3e424c45386b0a36c57211da819021cb1929775a/idk/include/division.h#L138
    
    /* Long division by 10. */
    static unsigned long long int div10l(unsigned long long int v) {
    
        /* It's a kind of magic.  We achieve 64-bit (long) division by dividing the two 32-bit halfs of the number 64-bit
         * number.  The first (most significant) half can produce a rest when dividing, which has to be carried over to the
         * second half.  The rest_add table contains values added to the second half after dividing depending on the rest
         * from the first division.  This allows evaluation of a result which is almost correct -- it can be either the
         * expected result, or the expected result plus one.  The error can be easily detected and corrected.
         */
        
        /* one dream */
        static unsigned long long int rest_add[] = {
            0x00000000, 0x1999999a, 0x33333334, 0x4ccccccd, 0x66666667,
            0x80000001, 0x9999999a, 0xb3333334, 0xcccccccd, 0xe6666667
        };
        
        /* one soul */
        unsigned long long int a = div10((unsigned int)(v >> 32));
        unsigned long long int b = div10((unsigned int)(v & 0xffffffff));
        
        /* one prize */
        int ri = (v >> 32) - a * 10;
        
        /* one goal */
        unsigned long long int ret = (a << 32) + b + rest_add[ri];
        
        /* one golden glance */
        if (ret * 10L > v) {
            //printf("OGG %llu %llu\n", ret * 10, v);
            --ret;
        }
        
        /* of what should be */
        return ret;
    }

    Деление на 10. Но зачем? Неужели компилятор настолько туп, что сам не может этого сделать?
    И да, эти туповатые комментарии one dream, one soul это отсылка к песне Queen - A Kind of Magic https://youtu.be/0p_1QSUsbsM

    j123123, 03 Марта 2018

    Комментарии (52)
  4. C++ / Говнокод #23850

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    MyType(const CopyPastedFromSomewhere&) = delete;
    MyType& operator=(const CopyPastedFromSomewhere&) = delete;
    
    MyType& operator=(const MyType*) = delete;
    
    // Winner?
    MyType& MyType(const MyType&) = delete;

    А что можно найти в вашей кодовой базе? К слову, выяснилось, что вариант

    void operator=(const MyType&) = delete;
    вполне себе допустим.

    roman-kashitsyn, 02 Марта 2018

    Комментарии (21)
  5. Си / Говнокод #23832

    +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
    45. 45
    typedef unsigned int uint;
    
    uint inc(uint i) {
        return i+1;
    }
    uint dec(uint i) {
        return i-1;
    }
    uint add(uint a, uint b) {
        return 0==b ? a : add(inc(a),dec(b));
    }
    
    inline uint _mul(uint a, uint b, uint r) {
        return 0==b ? r : _mul(a,b-1,r+a);
    }
    uint mul(uint a, uint b) {
        return _mul(a,b,0);
    }
    
    uint dec_mul(uint a, uint b, uint r) {
        return 0==b ? r : dec_mul(a,dec(b),r+a);
    }
    
    //gcc 7 здесь сходит с ума на O3, шланг невозмутимо ставит  imul    edi, esi
    uint crazy_mul(uint a, uint b, uint r) {
        return 0==b ? r : crazy_mul(a,dec(b),add(r,a));
    }
    //арифметическая прогрессия. 
    inline uint _sum(uint a,uint s) {
        return a==0 ? s :_sum(a-1,s+a);
    }
    //gcc: сложна нипанятна
    uint sum(uint a) {
        return _sum(a,0);
    }
    //шланг:
    //        imul    rcx, rax
    //        shr     rcx
    uint sum1(uint a) {
        uint s=0;
        for (int i=0;i<a;++i){
            s+=i;
        }
        return s;
    }

    Смотрим как компиляторы решают разные упоротые рекурентные задачки.
    https://godbolt.org/g/4JZuPr

    3.14159265, 27 Февраля 2018

    Комментарии (27)
  6. 1C / Говнокод #23723

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    	
    	Организация1 = Справочники.Организации.ПустаяСсылка();
    	Организация1 = Справочники.Организации.НайтиПоНаименованию("ХХХХХ Андрей Александрович ИП");
    	Организация = Организация1;
    	ОрганизацияШапка = Организация1;
    	Склад = Справочники.Склады.НайтиПоНаименованию("Сервис центр");
    	Контрагент = Справочники.Партнеры.НайтиПоНаименованию("Розничный покупатель");
    	ВидОперации = Перечисления.ВидРемонта.ПлатныйРемонт;
    	
    КонецПроцедуры;

    Строка 3. Непонятно для чего введена переменная Организация1 (реквизита такого нет).
    Строка 3. Непонятно для чего нужна инициализация пустой ссылкой, если в следующей строке происходит присваивание другого значения.
    Строка5. Почему бы сразу не инициализировать реквизит нужным значением?

    VladC, 12 Февраля 2018

    Комментарии (2)
  7. 1C / Говнокод #23713

    +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
    Запрос = Новый Запрос;
    	Запрос.Текст="ВЫБРАТЬ
    	|	ЗаказНаряд.Ссылка КАК Ссылка
    	|ИЗ
    	|	Документ.ЗаказНаряд КАК ЗаказНаряд
    	|ГДЕ
    	|	ЗаказНаряд.Проведен = ИСТИНА";	
    
    	Выборка=Запрос.Выполнить().Выбрать();
    	Выборка.Следующий();
    	Если обЗначениеНеЗаполнено(Выборка.Ссылка) Тогда
    .......

    Чуть упростил запрос для быстроты понимания...
    Как проверить запрос ПУСТОЙ() или нет... Вот один из разработчиков нашел метод.....

    timofeysin, 07 Февраля 2018

    Комментарии (8)
  8. Lua / Говнокод #23614

    +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
    local lv = {"sdds"}
    lv.act = function(foo)
    	foo(lv)
    end
    
    function start()
    	local x = function(self)
    		print(self[1])
    	end
    	lv.act(x)
    end
    
    start()

    Такой значит, насоздаешь одинаковых шаблоных хуйн, а потом по какой-то причине одна из 82837273723 хуйн должна быть уникальна какой-то неведомой хуйней и приходится в (шаблоне, но в луа нет шаблонов!) таблице прописывать половой акт самим с собой, чтоб он смог мутировать в другую отличную от других неведомых хуй. Например стать бабочкой, но тогда придется в единной функции хуярить всю бабочку, ну можно много функций! Тем не менее оригинальная неведомая хуйня не пострадает.
    О здаровка

    3oJIoTou_xyu, 22 Декабря 2017

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

    +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
    public class RussianNumberUtils {
    
        public static String getRussianNumberFormat(String number) {
    
            StringBuilder numberBuilder = new StringBuilder();
    
            try {
                numberBuilder.append("+");
                numberBuilder.append(number.charAt(0));
                numberBuilder.append(" (");
                numberBuilder.append(number.substring(1, 4));
                numberBuilder.append(") ");
                numberBuilder.append(number.substring(4, 7));
                numberBuilder.append("-");
                numberBuilder.append(number.substring(7, 9));
                numberBuilder.append("-");
                numberBuilder.append(number.substring(9, Math.max(number.length(), 11)));
    
                return numberBuilder.toString();
            } catch (Exception e) {}
    
            return number;
        }
    }

    Форматирование русского номера телефона

    lukaville, 19 Декабря 2017

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

    +2

    1. 1
    2. 2
    3. 3
    Telegram - считается "секьюрным" благодаря маркетенгу, вся его безопасность 
     основана на закрытости протокола.
    Дискач.

    хуита, 14 Декабря 2017

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

    +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
    <?php
    $s       = "This";
    $is      = "an";
    $of      = "a";
    $ninja   = "coding";
    $This    = "is";
    $a       = "ninja";
    $coding  = "echo";
    $an      = "example";
    $example = "of";
    ${null}  = ' "$s';
    function z($x,$c='$'){return $x==1?$c:z($x-1,$c.'$');}
    for($i=1;$i<=7;$i++){${null}.=' ${'.z($i).'s}';}
    eval($$$$$$$$$s.${null}.'\n";');
    
    /*  Returns:
    This is an example of a ninja coding
    */

    PHP очарователен
    К посту http://govnokod.ru/23540

    ibragimych26, 08 Декабря 2017

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