1. Java / Говнокод #1975

    +81.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public void checkClass(Object target){
            if (!target.getClass().toString().contains("myBuilder")){
                throw new IllegalArgumentException("Передан объект неверного типа");
            }
        }

    instanceof - это для трусов!

    Jk, 14 Октября 2009

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

    +161.7

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function read_file($path)
    {if(!is_file($path))return false;
    elseif(!filesize($path))return array();
    elseif($array=file($path))return $array;
    else while(!$array=file($path))sleep(1);
    return $array;}

    интересный способ чтения файла в WR-Counter )))

    inso, 14 Октября 2009

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

    +157

    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
    <?php
        public function run()
        {
            $db = Registry::get('Db');
    
            $db->transaction(Db_Database::START);
    
            $success = $db->query()->update()
                ->table('forum_topics')
                ->set('PostsCount = PostsCount - 1')
                ->set('LastPostID = ('
                    . $db->query()
                        ->select()->fields('ID')
                        ->table('forum_posts')->order('ID', 1) // DESC
                        ->where('TopicID = %d', $this->post->topic->id)
                        ->limit(1)->compile()->getQuery()
                    . ')')
                ->set('FirstPostID = ('
                    . $db->query()
                        ->select()->fields('ID')
                        ->table('forum_posts')->order('ID')
                        ->where('TopicID = %d', $this->post->topic->id)
                        ->limit(1)->compile()->getQuery()
                    . ')')
                ->where('ID = %d', $this->post->topic->id)
                ->compile()->run()->success()
            && $db->query()->update()
                ->table('forum_cats')
                ->set('PostsCount = PostsCount - 1')
                ->set('LastTopicID = ('
                    . $db->query()
                        ->select()->fields('ID')
                        ->table('forum_topics')->order('LastPostID', 1) // DESC
                        ->where('CatID = %d', $this->post->topic->category->id)
                        ->limit(1)->compile()->getQuery()
                    . ')')
                ->where('ID = %d', $this->post->topic->category->id)
                ->compile()->run()->success()
            && $db->query()->update()
                ->table('forum_posts')
                ->set('Deleted = 1')
                ->where('ID = %d', $this->post->id)
                ->compile()->run()->success();
            $db->transaction($success ? Db_Database::COMMIT : Db_Database::ROLLBACK);
            return $success;
        }

    Вот такая вот жесть бывает. Изменение счетчиков на форуме (денормализация) с использованием альфа-версии кверибилдера. по-моему — устрашающе)

    Shock, 13 Октября 2009

    Комментарии (7)
  4. VisualBasic / Говнокод #1972

    −124.6

    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
    ''' <summary>
    ''' Представляет обект RSS-новость
    ''' </summary>
    ''' <remarks></remarks>
    Public Class NewsItems
    ...
        Public Property AgencyTitle() As String
            Get
                Return Me._agencyTitle
            End Get
            Set(ByVal value As String)
                Me._agencyTitle = value
            End Set
        End Property
    ...
        ''' <summary>
        ''' Вставка региональной новости в БД
        ''' </summary>
        ''' <param name="Lang">язык</param>
        ''' <param name="DateFormat">формат даты в рассылке</param>
        ''' <param name="region">ID региона</param>
        ''' <remarks></remarks>
        Public Sub AddNewRegion(ByVal Lang As String, ByVal DateFormat As String, ByVal region As Integer)
            If AgencyTitle.StartsWith("зБЪЕФБ.Ru") Then
                Exit Sub
            End If
    ...
        End Sub
    ...
    End Class

    заставили разбираца с проектом на ВБ...
    и вот шо я там нашол.
    ...ну конешно... я бы тоже испугался новостного агенства с таким названием )))

    xeonix, 13 Октября 2009

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

    +79.2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if("USD".equals(currency)) {
    model.put(CURRENCY, String.valueOf(RBSConstants.CURRENCY_USD));
    } else if("EUR".equals(currency)) {
    model.put(CURRENCY, String.valueOf(RBSConstants.CURRENCY_EUR));
    } else if("RUB".equals(currency)) {
    model.put(CURRENCY, String.valueOf(RBSConstants.CURRENCY_RUB));
    } else if("UAH".equals(currency)) {
    model.put(CURRENCY, String.valueOf(RBSConstants.CURRENCY_UAH));
    } else if("NOK".equals(currency)) {
    model.put(CURRENCY, String.valueOf(RBSConstants.CURRENCY_NOK));
    }

    5 валют это тебе не 55 и не стопицот, так что херячим ифами

    shomeser, 13 Октября 2009

    Комментарии (14)
  6. PHP / Говнокод #1970

    +165.2

    1. 1
    2. 2
    3. 3
    function nik_slashes(&$value)     {
         return (stripslashes($value));
    }

    Коллега сделал свою функцию для удаления слэшей с блек джеком и всем прочим.

    Acid Beast, 13 Октября 2009

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

    +132.9

    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
    //  Этот метод проверяет, создано ли окошло лога, если не создано, то создает его
            public void CheckLogWnd()
            {
                try
                {
                    if (logWnd.IsAccessible)
                    {
                    }
                }
                catch
                {
                    logWnd = new LogWnd();
                }
            }

    Не помню как сделать это правильно :(

    nolka4, 13 Октября 2009

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

    +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
    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
    47. 47
    <?php
    /**
     * хелпер подсчитывает кол-во дней между двух дат
     */
    class ********_View_Helper_DateDiff 
    {
    	/**
    	 * из дня, месяца и года формирует время в формате кол-ва дней
    	 * @return integer
    	 */
    	protected function dateToDays($day, $month, $year)
        {
            if ($month > 2) {
                // March = 0, April = 1, ..., December = 9,
                // January = 10, February = 11
                $month -= 3;
            } else {
                $month += 9;
                --$year;
            }
    
            $hb_negativeyear = $year < 0;
            $century         = intval($year / 100);
            $year            = $year % 100;
    
            if ($hb_negativeyear) {
                return intval((14609700 * $century + ($year == 0 ? 1 : 0)) / 400) +
                       intval((1461 * $year + 1) / 4) +
                       intval((153 * $month + 2) / 5) +
                       $day + 1721118;
            } else {
                return intval(146097 * $century / 4) +
                       intval(1461 * $year / 4) +
                       intval((153 * $month + 2) / 5) +
                       $day + 1721119;
            }
        }
    	/**
    	 * высчитывает разницу между двух дат
    	 * @return integer
    	 */
    	public function dateDiff($day1,$month1,$year1,$day2,$month2,$year2) {	
    		$days1 = $this->dateToDays($day1,$month1,$year1);
    		$days2 = $this->dateToDays($day2,$month2,$year2);
    		return ($days1-$days2);
    	}
    }

    кусок самописного расширения ZF.
    про gregoriantojd() люди не знали.

    fatlazyanimal, 12 Октября 2009

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

    +74.7

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    else if (i == '\n')
                {
                    if (lastb != '\r')
                    {                                 
                       // imagine my joy...
                        if (!(isCrlfStream && lastb == '\n'))
                        {
                            out.write(newline);
                        }
                    }
                    else

    Довольно известная опенсорсовая библиотека bouncycatle(bcmail-jdk15-143) разбирался в подписке eMail сообщений и вот где то на вторые- третьи сутки неравной борьбы и вкуривания доки дошел до этого куска кода, комент меня убил
    ЗЫ. Библиотека и ее писатели действительно круты но видно и они устают писать нетленный код.

    tsval, 12 Октября 2009

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

    +60.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    CString str;
    if(censored_num < 10)
    	str.Format(_T("CENSORED 0%d"), censored_num);
    else
    	str.Format(_T("CENSORED %d"), censored_num);

    Найдено в рабочем коде.

    Xentrax, 12 Октября 2009

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