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

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

    +5

    1. 1
    2. 2
    3. 3
    if ($this->_session->isLoggedIn() && isset($jsLayout['components']['checkout']['children']['steps']['children']['shipping-step']['children']['shippingAddress']['children']['before-form']['children'])) {
        // some code
    }

    Самая правильная проверка наличия элемента в DOM...

    Tim_Walker, 09 Июня 2016

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <?
    if($login=='')
    {
       global $APPLICATION;
       $APPLICATION->ThrowException('Имя входа должно быть заполнено.'); 
       return false;
    }
    
    // Получить последнее исключение можно методом 
    $APPLICATION->GetException()
    ?>

    Bitrix. Лучшие стандарты веб-разработки и новое ядро! Создатели логики try-catch-throw наверное перевернулись бы 100500 раз в гробу увидев такую "реализацию". Пруф как "нужно делать": https://dev.1c-bitrix.ru/api_help/main/reference/cmain/throwexception.php

    zenn1989, 08 Июня 2016

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

    +5

    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
    private string GetMinutes() 
    { 
          string minute = (DateTime.Now.Minute < 10) ? "0" + DateTime.Now.Minute.ToString() : DateTime.Now.Minute.ToString();  
    
          return minute; 
    }
    
    private string LogPath(string minute) 
    { 
         string logPath = Param.directory + @"\log(" + DateTime.Now.ToShortDateString() + " " 
                    + DateTime.Now.Hour.ToString() + "." + minute + ").txt"; 
         return logPath; 
    }
    
    string minute = GetMinutes(); //Минуты формата "мм" для имени файла ЛОГа. 
    return LogPath(minute);       //Путь файла ЛОГа

    dreamer, 06 Июня 2016

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

    +5

    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
    function insertComment(comment) {
        // todo: optimize this shit
        for (var j = 0; j < $scope.comments.length; ++j) {
            if ($scope.comments[j].thread_id == comment.thread_id) {
                $scope.comments[j] = comment;
                return;
            }
            if ($scope.comments[j].comment_id < comment.comment_id) {
                $scope.comments.splice(j, 0, comment);
                return;
            }
        }
        $scope.comments.push(comment);
    }
    
    for (var i = 0; i < data.length; ++i) {
        comment = data[i];
        comment.text = $sce.trustAsHtml(comment.text);
        comment.postedFuzzy = fuzzyDate(new Date(comment.posted), new Date());
        insertComment(comment);
    }

    Оптимальное набивание комментов в сток за O(n^2).

    http://146.185.130.46/ngk/

    bormand, 06 Июня 2016

    Комментарии (120)
  6. Java / Говнокод #20132

    +5

    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
    // Если игрок временный то не даём изменять лимит
    
    public void updatePlayerLimits(Long userId, int limitAmount) {
            Player player = userComponent.getPlayer(userId);
            if (player == null) {
                throw new RuntimeException("Error on find user for updating user deposit limits, userId = " + userId);
            }
    
            if (player.isTemporary()) {
            	throw new RuntimeException("saveLimit-newAmount-tempPlayer-message");
            }
           player.setLimit(limitAmount)
    }
    
    // И где-то в контроллере админки
    
    public void doSubmit() {
    ...
    	try {
    		getPlayerLimitComponent().updatePlayerLimits(getPlayerId(), 10);
    	}catch(RuntimeException e){
    		if(!e.getMessage().equals("saveLimit-newAmount-tempPlayer-message"))
    			throw e;
    	}
    }

    Просто молча не даём админам изменять лимиты игроку если он временный

    stokito, 03 Июня 2016

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    //Сегодня у меня вопрос по говнокоду.
    //Как у нас на говнокодике реализовано сколько непросмотренных комментариев в каждом треде?
    //Неужели на каждого юзера заводится счётчик и инкрементится при добавлении в каждой теме?
    //Неужели на каждого юзера на каждый комментарий заводится флаг, сообщающий какой комментарий прочитан, а какой нет?

    LispGovno, 03 Июня 2016

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

    +5

    1. 1
    2. 2
    3. 3
    if ($('.b-form__row_hide').hasClass('b-form__row_hide')) {
    	$('.b-form__row_hide').addClass('b-form__row_hide');
    }

    riddick6600, 02 Июня 2016

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    public void TrimExcess()
    {
    	int num;
    	num = (int) (((double) ((int) this._items.Length)) * 0.9);
    	if (this._size >= num)
    	{
    		goto Label_002A;
    	}
    	this.Capacity = this._size;
    Label_002A:
    	return;
    }

    Хуброхапр

    dm_fomenok, 01 Июня 2016

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    /**
       * Detects if the current device is using a mac OS
       */
      function DetectMacOSX() {
        if (stripos($this->userAgent, $this->macOSX) !== FALSE) {
          return TRUE;
        }
        else {
          return FALSE;
        }
      }

    vigasin, 01 Июня 2016

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

    +5

    1. 1
    https://github.com/KvanTTT/Cool-Compiler/blob/master/CoolCompiler/CoolCompiler.cs

    Учитесь, сопляки, как исключения перехватывать!

    dm_fomenok, 26 Мая 2016

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