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

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

    +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
    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
    ДействующиеПостановления = Новый Структура;
    			ДействующиеПостановления.Вставить("Постановление914",  ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137);
    			ДействующиеПостановления.Вставить("Постановление1137", НЕ (ДанныеПечати.Дата < ДатаНачалаПримененияПостановления1137));
    			ДействующиеПостановления.Вставить("Постановление1137_625", ВедетсяУчетНДСПоФЗ56(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
    			ДействующиеПостановления.Вставить("Постановление981", ДействуетПостановление981(ДанныеПечати.Дата,ДанныеПечати.ДатаИсправления));
    			
    			ОпцииПечатиСчетаФактуры.Вставить("ДействующиеПостановления", ДействующиеПостановления);
    			
    			Если ДанныеПечати.КорректировочныйСчетФактура Тогда
    				Если ДействующиеПостановления.Постановление981 Тогда
    					Макет = МакетКорр_981;
    					ЕстьПостановление981 = Истина;
    				ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
    					Макет = МакетКорр_625;
    					ЕстьПостановление1137_625 = Истина;
    				Иначе
    					Макет = МакетКорр;
    					ЕстьПостановление1137 = Истина;
    				КонецЕсли;
    			ИначеЕсли ДействующиеПостановления.Постановление914 Тогда
    				Макет = Макет451;
    				ЕстьПостановление914 = Истина;
    			ИначеЕсли ДействующиеПостановления.Постановление981 Тогда
    				Макет = Макет981;
    				ЕстьПостановление981 = Истина;
    			ИначеЕсли ДействующиеПостановления.Постановление1137_625 Тогда
    				Макет = Макет1137_625;
    				ЕстьПостановление1137_625 = Истина;
    			Иначе
    				Макет = Макет1137;
    				ЕстьПостановление1137 = Истина;
    			КонецЕсли;
    			
    			Если (ЕстьПостановление914 И ЕстьПостановление1137) 
    				ИЛИ (ЕстьПостановление914 И ЕстьПостановление981)
    				ИЛИ ((ЕстьПостановление1137 ИЛИ ЕстьПостановление1137_625) И ЕстьПостановление981) Тогда
    				
    				Текст = НСтр("ru = 'Недоступна одновременная печать счетов-фактур, сформированных по разным постановлениям Правительства РФ'");
    				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    					Текст,
    					ДанныеПечати.Ссылка);
    				
    				ТабличныйДокумент.Очистить();
    				Прервать;
    				
    			КонецЕсли;

    Типовая УТ 11.3.4.93, ПечатьОбщихФорм, модуль менеджера

    Что проверяют эти "Если"? Не ошибся ли программист?
    Постановление определяется по дате счета-фактуры. Интересно, как можно сформировать счет-фактуру одновременно "по разным постановлениям Правительства РФ"?

    И мало того, что вторая и третья строки всегда дают противоположный результат. Нет, на всякий случай проверим "Если (ЕстьПостановление914 И ЕстьПостановление1137)".
    Интересно также, как после ИначеЕсли ожидали получить сочетание разных "постановлений"? И почему проверяется всего три неправильных сочетания? Надо больше кода!

    Еще понравилась оригинальная идея завести на каждый элемент структуры отдельную переменную, потом присвоить этой переменной то же, что и в структуре, а потом проверить сочетание этих переменных. Надо заметить, что переменные ЕстьПостановлениеYYYY больше нигде не используются.

    romanvk, 10 Ноября 2017

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

    +1

    1. 1
    Поцаны, шестой уровень вложенности - это ок или говнокод?

    У вас обычно сколько?

    subaru, 08 Ноября 2017

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

    +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
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    // https://github.com/telegramdesktop/tdesktop/blob/5f5770dd46491133b135a71fc2d4f92d13107ade/Telegram/SourceFiles/history.cpp#L1455
    
    int History::countUnread(MsgId upTo) {
    	int result = 0;
    	for (auto i = blocks.cend(), e = blocks.cbegin(); i != e;) {
    		--i;
    		for (auto j = (*i)->items.cend(), en = (*i)->items.cbegin(); j != en;) {
    			--j;
    			if ((*j)->id > 0 && (*j)->id <= upTo) {
    				break;
    			} else if (!(*j)->out() && (*j)->unread() && (*j)->id > upTo) {
    				++result;
    			}
    		}
    	}
    	return result;
    }
    
    void History::updateShowFrom() {
    	if (showFrom) return;
    
    	for (auto i = blocks.cend(); i != blocks.cbegin();) {
    		--i;
    		for (auto j = (*i)->items.cend(); j != (*i)->items.cbegin();) {
    			--j;
    			if ((*j)->id > 0 && (!(*j)->out() || !showFrom)) {
    				if ((*j)->id >= inboxReadBefore) {
    					showFrom = *j;
    				} else {
    					return;
    				}
    			}
    		}
    	}
    }

    очередная порция говнеца из телесрамного клиента

    j123123, 07 Ноября 2017

    Комментарии (119)
  5. PHP / Говнокод #23479

    +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
    $probabilities=array();
    $get_items=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' ORDER BY `probability` DESC;");
    while($item=mysql_fetch_assoc($get_items)){
    $probabilities[$item['probability']]=0;
    }
    $dices=$probabilities;
    for($pi=100;$pi>=0;$pi--){
    foreach($probabilities as $probability=>$pstate){
    if(rand(1, 2)==2){
    if($pi<=$probability){
    $dices[$probability]=$dices[$probability]+1;
    }
    }	
    }
    }
    arsort($dices, SORT_NUMERIC);
    $probability=reset(array_keys($dices));
    $get_prize=mysql_query("SELECT * FROM `items` WHERE `iid` IN(".mysql_real_escape_string($case['items']).") AND `status`='1' AND `count`>'0' AND `probability`='".$probability."' ORDER BY RAND() LIMIT 1;");

    Написал с нуля на заказ движок для очередного детского говноказино (розыгрыш пикселей для игр в "Steam").
    Заказчик умолял сделать возможность управления вероятностью выпадения того или иного предмета (в процентах), что я и сделал. Вышеприведённый алгоритм как раз отвечает за выбор приза в соответствии с прописанными в настройках вероятностями. Сейчас кажется, что решение не самое "изящное".
    Есть, что заметить по поводу алгоритма?

    AnalPerOral, 02 Ноября 2017

    Комментарии (79)
  6. bash / Говнокод #23474

    +1

    1. 1
    Кегдан вернулся, давайте радоваться вместе!

    d_fomenok, 01 Ноября 2017

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

    +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
    function CountBack_slider(secs,iid,j_timer) {
    	if (secs < 0) {
    		document.getElementById(iid).innerHTML = FinishMessage;
    		document.getElementById('caption'+j_timer).style.display = "none";
    		document.getElementById('heading'+j_timer).style.display = "none";
    		return;
    	}
    	DisplayStr = DisplayFormat.replace(/%%D%%/g, calcage(secs,86400,100000));
    	DisplayStr = DisplayStr.replace(/%%H%%/g, calcage(secs,3600,24));
    	DisplayStr = DisplayStr.replace(/%%M%%/g, calcage(secs,60,60));
    	DisplayStr = DisplayStr.replace(/%%S%%/g, calcage(secs,1,60));
    	
    	var elems = document.getElementsByTagName('*'), i;
    	for (i in elems) {
    		if((' ' + elems[i].className + ' ').indexOf(' ' + iid + ' ')
    				> -1) {
    			elems[i].innerHTML = DisplayStr;
    		}
    	}
    	
    	jQuery('.'+iid).innerHTML = DisplayStr;
    	  if (CountActive)
    		setTimeout(function(){CountBack_slider((secs+CountStepper),iid,j_timer)}, SetTimeOutPeriod);
    }

    Работаю с купленным html5-шаблоном.
    В шаблоне jq (и еще куча всякого хлама) подключен.
    Кодили с мыслью "работает и *уй с ним".

    Developer, 27 Октября 2017

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

    +1

    1. 1
    https://s1.postimg.org/9ay7hrf7fj/js-love-forever.png

    heart, heart, JavaScript!

    wvxvw, 26 Октября 2017

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

    +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
    while (1):
        for iterator in range(len(posts)):
            # Для прозрачности вычислений
            time_post_a = datetime.now()
            time_post_a = int(time.mktime(time_post_a.timetuple()))
    
            time_post_b = posts[iterator]['time']
            time_post_b = int(time.mktime(time_post_b.timetuple()))
    
            # Выполнить действие, в случае, если "время пришло" по массиву posts
            if ((time_post_a - time_post_b) == 0):
                print ('Итератор: ' + str(iterator) + ', Новая публикация: ' + str(posts[iterator]['time']))
                time.sleep(1) # Если его убрать, то начинаются дикие пляски
                break

    Планировщик постов

    meridium, 26 Октября 2017

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    #if ( clang_major==7 && clang_minor==3 )
             public std::enable_shared_from_this<CryptoContainer>
    #else
             public std::enable_shared_from_this<CryptoContainerInterface>
    #endif

    Во первых непонятно зачем, а во вторых clang > 6 на момент написания даже в проекте не было.

    s0nicyouth, 25 Октября 2017

    Комментарии (0)
  11. Java / Говнокод #23453

    +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
    private SharedPreferences longCache;
    private String email;
    
    public void updateEmail(String newLogin) {
        if(newLogin != null) {
            email = newLogin;
            if(longCache.contains("email")) {
                longCache.edit().remove("email").apply();
            }
            longCache.edit().putString("email", email).apply();
        }
    }

    Проект под Android.
    Стаж разработчика - 5 лет.

    ausichenko, 25 Октября 2017

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