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

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

    +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
    // Определение метода  Q3CanvasText::text() 
    
    class Q_COMPAT_EXPORT Q3CanvasText : public Q3CanvasItem {
    //...
      QString text() const;
    //...
    };
    
    // Далее уже в "моем" классе строчка:
    class CDevice : public CDiagramObject {
    // ...
    private:
      Q3CanvasText * m_pTitle;
    //....
    public:
      const QString & stitle() const { return m_pTitle->text(); } // обратим вниманиена возвращаемый тип
    // ...
    };
    
    // Еще один класс и отображение тултипа при наведении
    void CDiagramView::showToolTip( const QPoint & p, CDevice * d ) {
    
        if( d ) {
            QString tmp;
            if( d->group() == QString::null || d->group() == "" )
                tmp = ( d->stitle().left( d->stitle().indexOf(":") ) );  // вылетало здесь : d->stitle().indexOf(":") segmentation fault
            else
                tmp = d->group();
    //.....
            }
        }

    Нашел магию!

    Юзаю Qt 4.8.6 в Linux
    Под Виндой новая версия перепиливаемой проги компилится и работает,
    под Линухом новая версия вылетает, старая робит.

    Соль в том, что метод stitle() по факту возвращает ссылку на копию текста возвращенного Q3CanvasText::text(), которая внезапно удаляется при выходе из метода.

    Но почему тот же gcc под виндой скомпилил это без багов?

    OlegUP, 03 Февраля 2016

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

    −99

    1. 1
    2. 2
    Дней = 90;
        НачалоПериода = НачалоДня(ТекущаяДата()) - Дней*86400;

    немного магии

    alexinzaz, 22 Января 2016

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

    +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
    Где-то далеко в index.php:
    
    require_once 'face.php';
    
    А где-то внутри face.php :
    
    require_once $_SERVER['DOCUMENT_ROOT'].'/includes/sidebar.html'
    
    А в середине sidebar.html вот такое:
    
                            <div class="sideBoxContent" style="font-size:1.2em;">
                                <ul class="list">
                                    <?php
    	require_once $_SERVER['DOCUMENT_ROOT'].'/config/config.php';
    	$dbt=db_connect();
    	$dbt->query("SET NAMES 'utf8'");
    
                                    $resultt = $dbt->query("SELECT * FROM a_news ORDER BY date DESC LIMIT 3");
                                    while ($myrowt = $resultt->fetch_array(MYSQLI_ASSOC))
                                    {
                                    echo "
                                    <li><script>addLink('icon go-clear','/b2b/news/news.html','".$myrowt["title"]."')</script></li>";
                                    }
                                    $resultt->close();
                                    $dbt->close();
                                    ?>
                                </ul>
                                <script>addLink('icon go','/b2b/news/news.html','Все новости')</script>
                            </div>
                        </div>
    
    P.S. addLink(c, h, t) генерит <a class="c" href="h">t</a>

    Господи, господи, зачем???

    Нет, возможно это не говнокод. Возможно, я чего-то не понимаю в этой жизни. Но чего???

    P.S. Я даже не знаю какой язык ставить. Тут и PHP, и JS...

    Arris, 17 Января 2016

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

    +2

    1. 1
    str.indexOf('#') === 0

    Проверка что строка начинается с '#'

    3_dar, 11 Января 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public static bool IsNullOrEmpty(this string str)
    	{
    		return string.IsNullOrEmpty(str);
    	}
    
    	public static bool IsNotNullOrEmpty(this string str)
    	{
    		return !string.IsNullOrEmpty(str);
    	}

    экономия должна быть экономной

    esromhaz, 26 Декабря 2015

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

    +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
    langDict0.Add(eng , new string[] { ger, fre, spa, chi, rus, jap, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(ger , new string[] { eng, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(fre , new string[] { eng, ger, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(spa , new string[] { eng, ger, fre, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(chi , new string[] { eng });
    langDict0.Add(rus , new string[] { eng });
    langDict0.Add(jap , new string[] { eng });
    langDict0.Add(por , new string[] { eng, ger, fre, spa, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(ita , new string[] { eng, ger, fre, spa, por, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(dut , new string[] { eng, ger, fre, spa, por, ita, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(pol , new string[] { eng, ger, fre, spa, por, ita, dut, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal  });
    langDict0.Add(swe , new string[] { eng, ger, fre, spa, por, ita, dut, pol, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(dan , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(fin , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(gre , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, cze, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(cze , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, rom, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(rom , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, hun, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(hun , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, slvk, bul, slvn, lit, lat, est, mal });
    langDict0.Add(slvk, new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, bul, slvn, lit, lat, est, mal });
    langDict0.Add(bul , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, slvn, lit, lat, est, mal });
    langDict0.Add(slvn, new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, lit, lat, est, mal });
    langDict0.Add(lit , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lat, est, mal });
    langDict0.Add(lat , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, est, mal });
    langDict0.Add(est , new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, mal });
    langDict0.Add(mal, new string[] { eng, ger, fre, spa, por, ita, dut, pol, swe, dan, fin, gre, cze, rom, hun, slvk, bul, slvn, lit, lat, est });

    ffff, 25 Декабря 2015

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

    −96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // возвращает "количество полных и неполных рублей"
    // Параметры:
    //	Сумма - число
    // Возвращаемое значение:
    //  число, равное ближайшему целому "сверху"
    Функция ЦелМаксимальное(Сумма) Экспорт
    	Возврат ?(Цел(Сумма) = Сумма, Сумма, Цел(Сумма) + 1);
    	
    КонецФункции // ЦелМаксимальное()

    Изобретаем велосипед округление с избытком вместе с разработчиками типовых конфигураций 1С.
    Обнаружено в:
    ЗУП 2.5.95.1
    БП 1.6.8.3

    CMblCL, 18 Декабря 2015

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

    0

    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
    $collections = Yii::app()->db->createCommand()
        ->selectDistinct('prod.product_id,cc.category_id AS id, cc.code AS code,cc.img AS '
            . 'pic,cc.category_name AS name, pl.category_name AS ln_name, '
            . 'fvs.value AS country,c2.category_name AS parent_category,'
            . 'c2.category_id AS p_id, c2.code AS p_code')
    // ->select()
        ->from('Products prod')
        ->join('Products_Categoryes pc', 'prod.product_id = pc.product_id')
        ->join('Categories c', 'c.category_id = pc.category_id')
        ->join('Products_Categoryes ppp', 'ppp.category_id = c.category_id')
        ->join('Products p', 'p.product_id = ppp.product_id')
        ->join('Products_Categoryes pppccc', 'pppccc.product_id = ppp.product_id ')
        ->join('Categories cc', 'cc.category_id = pppccc.category_id
    AND cc.category_left > :cat_left
    AND cc.category_right < :cat_right
    AND cc.category_level = 3', array(':cat_left' => $brends['category_left'], ':cat_right' => $brends['category_right']))
        ->join('Categories c2', 'cc.category_left > c2.category_left
    AND cc.category_right < c2.category_right
    AND c2.category_level = cc.category_level - 1')
        ->leftJoin('kk_categories_ln pl', ' pl.ln_id = :ln '
            . 'AND pl.category_id = cc.category_id', array(':ln' => $ln_id))
        ->leftJoin('Feature_Product_Values fpv', 'p.product_id = fpv.product_id '
            . 'AND feature_id = :country_id ', array(':country_id' => $counrty_id))
        ->leftJoin('Feature_Values_string fvs', 'fvs.feature_id = fpv.feature_id')
        ->group('cc.category_id')
        ->where($where, $params)
        ->queryAll();

    j488538trbvmcom, 15 Декабря 2015

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

    +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
    public int RowSpan {
                get {
                    int p = HtmlText.IndexOf("rowspan");
                    if (p > -1) {
                        int index = HtmlText.IndexOf(" ", p + 8);
                        int index1 = HtmlText.IndexOf(">", p + 8);
                        int index2 = HtmlText.IndexOf("/", p + 8);
                        if ((index > index1) && (index1 != -1))
                            index = index1;
                        if ((index > index2) && (index2 != -1))
                            index = index2;
                        string s = HtmlText.Substring(p + 8, index - p - 8);
                        return Convert.ToInt16(s);
                    } else
                        return -1;
                }
                set {
                    if (value == 0) {
                        HtmlText = HtmlText.Replace("rowspan", string.Empty);
                    }
                }
            }
            public int ColSpan {
                get {
                    int p = HtmlText.IndexOf("colspan");
                    if (p > -1) {
                        int index = HtmlText.IndexOf(" ", p + 8);
                        int index1 = HtmlText.IndexOf(">", p + 8);
                        int index2 = HtmlText.IndexOf("/", p + 8);
                        if ((index > index1) && (index1 != -1))
                            index = index1;
                        if ((index > index2) && (index2 != -1))
                            index = index2;
                        string s = HtmlText.Substring(p + 8, index - p - 8);
                        return Convert.ToInt16(s);
                    } else
                        return -1;
                }
            }

    а тут регулярки он не осилил

    Lokich, 02 Ноября 2015

    Комментарии (11)
  11. JavaScript / Говнокод #18947

    +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
    function createUUID() {
    	var s = [];
    	var hexDigits = "0123456789abcdef";
    	for (var i = 0; i < 36; i++) {
    		s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
    	}
    	s[14] = "4";
    	s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1);
    	s[8] = s[13] = s[18] = s[23] = "-";
    	var uuid = s.join("");
    	return uuid.substring(0, 18);
    }

    Интересно, тот кто это писал сам то понял что написал.. и зачем?

    P.S. взято отсюда - https://github.com/flashphoner/flashphoner_client/blob/wcs_api/client/src/Flashphoner.js

    Darth, 02 Ноября 2015

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