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

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

    −158

    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
    sub get_number_from_possible_b64
    {
            my $s = shift;
    
            my $rv = $s;
    
            if( $s =~ /^\d+$/ )
            {
                    $rv = int( $s );
    
            } elsif( $s =~ /=$/ )
            {
                    $rv = decode_base64( $rv );
            }
    
            return $rv;
    }

    Где-то есть что-то, что либо цифорка, либо строка, оканчивающаяся на знак равенства.

    kainwinterheart, 27 Августа 2013

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

    +76

    1. 1
    2. 2
    3. 3
    4. 4
    // date - java.util.Date
    SimpleDateFormat formatY = new SimpleDateFormat('yyyy')
    SimpleDateFormat format = new SimpleDateFormat('dd.MM.yyyy')
    Date dateFrom = format.parse('01.01.' + (Integer.valueOf(formatY.format(date)) - 3))

    Вот как надо вычитать 3 года от даты

    smpl, 20 Августа 2013

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

    +21

    1. 1
    typedef void *(*internalPointer) (const std::map<std::string, std::pair<const void*  volatile* const, void* const *> > (*FuncPointer)(volatile const int&, const char *const, const void *const *const (*FuncArg)(const std::vector<std::string>&)), void * const *, volatile int&, int * (*FuncArg2) (const std::string&, const std::vector<void>*) );

    thereisnosun, 06 Августа 2013

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

    +150

    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
    function write_text(){p = "";
    var mhour = newDate().getHours(); 
    if (hour>=4 && hour <10) {p = "ое утро"} else if (hour>=10 && hour <16) {p = "ый день"} else if (hour>=16 && hour <22) {p = "ый вечер"} else if (hour>=22 && hour <04) {p = "ой ночи"};
    a = document.getElementById("result");
    pre = document.getElementById("pre") + " ";
    n = document.getElementById("name");
    patr = " " + document.getElementById("patronymic");
    s = document.getElementById("surname");
    b = document.getElementById("birthdate");
    if (n.value!=="" && s.value!=="" && b.value!==""){a.innerHTML="Подождите, пожалуйста...";t=setTimeout('a.innerHTML="Добр"+p+", "+pre+s+"! Мы рады приветствовать Вас на этой странице! Она прекрасна, не так ли? Но, к сожалению, её полезность равна нулю, о чём мы очень сильно скорбим. Единственное, что мы могли бы сделать для Вас, "+n+", — это сообщить Вам Вашу же дату рождения: ею является "+b+".<br>До скорого, "+n+patr"!"',1750)} else
    if (n.value!=="") {a.innerHTML="Введите своё имя!";t=setTimeout('a.innerHTML="Ждём ввода данных..."',2000)} else
    if (s.value!=="") {a.innerHTML="Введите свою фамилию!";t=setTimeout('a.innerHTML="Ждём ввода данных..."',2000)} else
    if (b.value!=="") {a.innerHTML="Введите свой день рождения!";t=setTimeout('a.innerHTML="Ждём ввода данных..."',2000)} else
    {a.innerHTML="Заполните все поля!";t = setTimeout('a.innerHTML="Ждём ввода данных..."',2000)}}
    
    
    
    
    
    
    
    
    ) {a.innerHTML=

    Хотел было удалить ко всем баянам, но вспомнил - это же говнокод! Пришлось запостить сюда :(

    parzh, 03 Августа 2013

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

    −172

    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
    Наименование=Выборка.Наименование;
    АдресМестонахождения=Выборка.АдресМестонахождения;
    ВнешнийОбъект=Выборка.ВнешнийОбъект;
    ДатаВводаВЭксплуатацию=Выборка.ДатаВводаВЭксплуатацию;
    ДатаВыпуска=Выборка.ДатаВыпуска;
    ДоговорКонтрагента=Выборка.ДоговорКонтрагента;
    ЗаводскойНомер=Выборка.ЗаводскойНомер;
    Изготовитель=Выборка.Изготовитель;
    ИнвентарныйНомер=Выборка.ИнвентарныйНомер;
    КодРегиона=Выборка.КодРегиона;
    КодПоОКОФ=Выборка.КодПоОКОФ;
    Комментарий=Выборка.Комментарий;
    Контрагент=Выборка.Контрагент;
    КонтрагентИсполнительРемонта=Выборка.КонтрагентИсполнительРемонта;
    НомерПаспорта=Выборка.НомерПаспорта;
    ОбъектОсновныхСредств=Выборка.ОбъектОсновныхСредств;
    Организация=Выборка.Организация;
    ПлановыйГрафикРаботы=Выборка.ПлановыйГрафикРаботы;
    Подразделение=Выборка.Подразделение;
    ПодразделениеИсполнительРемонта=Выборка.ПодразделениеИсполнительРемонта;
    Приоритет=Выборка.Приоритет;
    РемонтнаяГруппа=Выборка.РемонтнаяГруппа;
    СрокПолезногоИспользования=Выборка.СрокПолезногоИспользования;
    ТехНомер=Выборка.ТехНомер;
    ТипОборудования=Выборка.ТипОборудования;
    ЭтоГруппаОбъектов=Выборка.ЭтоГруппаОбъектов;

    "Архитектор" явно не был знаком с методом ЗаполнитьЗначенияСвойств()

    doom2good, 31 Июля 2013

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

    +111

    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
    public class PmsUtil {
    	
    	public static boolean allowViewFolder(IFolder folder) {
    		return isIntersected(folder.getPermissions(), getUserPms());
    	}
    
    	private static Set<Permission> getUserPms() {
    		return LoginController.get().getUser().getRole().getPermissions();
    	}
    
    	private static boolean isIntersected(Set<Permission> pmsSetA, Set<Permission> pmsSetB) {
    		for(Permission pms : pmsSetB) {
    			if(pmsSetA.contains(pms)) {
    				return true;
    			}
    		}
    		return false;
    	}
    
    	
    }

    К слову об именах переменных... любил мой предшественник делать нестандартные сокращения.

    someone, 26 Июля 2013

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if( $yandexXML==false ){
       //...
    }
    elseif( $yandexXML==true ){
       //...
    }

    не ну а вдруг как бы че

    CRRaD, 25 Июля 2013

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

    +134

    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 <stdio.h>
    #include <stdint.h>
    #include <string.h>
    #include <inttypes.h>
    
    union Str
    {
       uint64_t a;
       char  str[8];
    };
    
    int main(void)
    {
      union Str str;
      memcpy( &str.str, "12345678", sizeof(str.a));
    
    
    str.a = ((str.a & 0x0F000F000F000F00)>>8) +
            ((str.a & 0x000F000F000F000F)*10);
    
    str.a = 1000000 * ((str.a >> 0 ) & 0xFF) +
              10000 * ((str.a >> 16) & 0xFF) +
                100 * ((str.a >> 32) & 0xFF) +
                      ((str.a >> 48) & 0xFF);
    //little-endian only. Можно переделать под big-endian
    
    printf("%"PRIu64, str.a);
    
    return 0;
    }

    Байтоебское преобразование строки из 8 цифр(в виде ascii символов) в число

    j123123, 21 Июля 2013

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

    +124

    1. 1
    2. 2
    3. 3
    // Просрока быть недолжно.
            // Если нет платежа, то будет исключение.
            // Оба эти случая логически исключены, если медот не дергать в неположеном месте.

    dimkich, 19 Июля 2013

    Комментарии (10)
  11. 1C / Говнокод #13437

    −174

    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
    Стр = ТЗОбщая.Добавить();
    Стр.сотрудник = Выборка.сотрудник;
    Стр.Результат = ВЫборка.Результат;
    ИскомаяСтрока = ТЗСотрДатаПриема.Найти(Стр.сотрудник,"Сотрудник");
    Если ИскомаяСтрока <> Неопределено Тогда
    	месяц_ = Месяц(ИскомаяСтрока.ДатаПриемаНаРаботу);
    	если месяц_ > 7 тогда  // чел принят после июля
    		число_ = 12 - месяц_;  //кол-во отработанных месяцев
    	иначе	  
    		число_ = 6 ; 
    	конецесли;	  
    КонецЕсли;	
    число_ = число_+ Месяц(ВыбДата) ;
    если число_ >=12 тогда
    	число_=12;
    конецесли;	 
    Стр.СреднийЗаработок = Окр(ВЫборка.Результат/29.4/число_,2);

    Вот так у нас считают средний заработок за последний год)))

    doom2good, 17 Июля 2013

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