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

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

    +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
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    $scales = db_select('_scale', 'q')
            ->condition('q.gender', $gender)
            ->fields('q', array('id'))
            ->execute();
    
        $i = 1;
        while ($scale = $scales->fetchObject()) {
            $raw_score = 0;
    
            $query = db_select('_scale_question', 'q')
                ->condition('q.scale_id', $scale->id)
                ->fields('q')
                ->execute();
    
            while ($item = $query->fetchObject()) {
                $user_answer = db_select('_user_answer', 'q')
                    ->condition('q.question_id', $item->question_id)
                    ->condition('q.result_id', $result_id)
                    ->fields('q', array('answer'))
                    ->execute()
                    ->fetchField();
    
                if ($user_answer == $item->expected_answer) {
                    $raw_score++;
                }
            }
    
    
            $raw_scores_item['scale_id'] = $scale->id;
            $raw_scores_item['score'] = $raw_score;
    
            $raw_scores[$i] = $raw_scores_item;
            $i++;
        }

    Drupal 7, SQL-запросы с DB API Drupal в двойном цикле(!).
    ...А заменить можно 1 нормальным SQL-запросом.

    skigf, 10 Декабря 2015

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

    +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
    if ($template)             // BAD
    if (isset($template))      // GOOD
    if ($template !== NULL))   // GOOD
    if ($template !== ''))     // GOOD
    
    if (strlen($template) > 0) // BAD! strlen("-1") is greater than 0
    if (is_string($template) && strlen($template) > 0) // BETTER
    
    if ($foo == $bar)          // BAD, avoid truthy comparisons
    if ($foo != $bar)          // BAD, avoid falsy comparisons
    if ($foo === $bar))        // GOOD
    if ($foo !== $bar))        // GOOD
    
     // We only allow valid persons
    if (is_object($p) && strlen($p->lastN) > 0 && $p->hidden === FALSE && $this->environment->moonPhase === MOON_LIB::CRESCENT) {
     $xmM = $thd;
    }
    
    if ($this->isValidPerson($person) {
      $xmM = $thd;
    }

    Решил погуглить гайдлайны по PHP: http://flowframework.readthedocs.org/en/stable/TheDefinitiveGuide/PartV/CodingGuideLines/PHP.html

    HiNeX, 07 Декабря 2015

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    $sql = "SELECT * FROM users WHERE id='" . $id . "'";
                    $query = db_assoc( $sql );
                    unset( $query['id'], $r['openid'], $query['password'], $query['refer'] );
                    $_SESSION['inform'] = $query;

    Я просто оставлю это здесь

    drop_database, 06 Декабря 2015

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for(var i=0; i<data.length; i++) {
    	…
    	self._markerList[data[i].r_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_osm_id].GOZ.arrRowNum.length] = parseInt(i);
    	self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum[self._markerList[data[i].r_federal_osm_id].GOZ.arrRowNum.length] = parseInt(i);
    	self._markerList[0].GOZ.arrRowNum[self._markerList[0].GOZ.arrRowNum.length] = parseInt(i);
    }

    Это parseInt умилительно. Нет, со счётчиком ничего внутри цикла не делается. Но а вдруг?

    torbasow, 04 Декабря 2015

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

    +5

    1. 1
    2. 2
    WCT воскрес.
    http://habrahabr.ru/post/271519/

    Abbath, 24 Ноября 2015

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <div class="map">
        <span style="color: rgb(0, 0, 0); font-family: Tahoma; font-size: 13px;"><br></span>
        <p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
        <br>&nbsp;
        <iframe src="https://maps.google.com/maps/MYMAP"></iframe>
         </p>
    </div>

    Попросили меня разобраться в верстве, и вот как карту сдвинули направо

    kschingiz, 22 Ноября 2015

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

    +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
    #include <bits/stdc++.h>
    using namespace std;
    #define mp make_pair
    #define mt make_tuple
    #define pb push_back
    #define rep(i,a,b) for(int i=a;i<b;++i)
    #define forn(i, n) for(int i=0;i<n;++i)
    #define forv(it, v) for(typeof((v).begin()) it = (v).begin(); it != (v).end(); ++it)
    #define all(c) (c).begin(), (c).end()
    #define fst first
    #define snd second
    typedef vector<int> vi;
    typedef vector<vi> vvi;
    typedef pair<int,int> pii;
    typedef long long ll;
    typedef vector<ll> vll;
    typedef pair<ll,ll> pll;
    typedef long double ld;
    typedef string st;
    const int inf = 1000 * 1000 * 1000;
    const int mod = 1000 * 1000 * 1000 + 7;
    const ld pi = acos(-1.0);
    const ll infl = 1000ll * 1000ll * 1000ll * 1000ll * 1000ll * 1000ll;
    const ld eps = 1e-7;
    #define y1 y1_dhs

    В продолжении предыдущего ГК: типичное начало олимпиадной проги на С++.

    Bobik, 16 Ноября 2015

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    <?php
    
    // ...
    
    if (isset($cache[$domain_id]) && isset($cache[$domain_id]) && !empty($cache[$domain_id])) {
        return $cache[$domain_id];
     }
    
    // ... 
    ?>

    Код для самых неуверенных и параноиков, кто сомневается в работе PHP. Ну или если вы неправильно разгоните свой процессор, и он начнет выдавать неправильные результаты операций.

    Расшифровка следующая:
    (если есть такой) и (если такой точно есть прям) и (он как бы есть на самом деле)

    jazinbazin, 13 Ноября 2015

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

    +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
    if (logsData.Count == 1) {
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count == 2) {
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count == 3) {
    				msg += logsData [logsData.Count - 3] + "\n";
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count == 4) {
    				msg += logsData [logsData.Count - 4] + "\n";
    				msg += logsData [logsData.Count - 3] + "\n";
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			} else if (logsData.Count >= 5) {
    				msg += logsData [logsData.Count - 5] + "\n";
    				msg += logsData [logsData.Count - 4] + "\n";
    				msg += logsData [logsData.Count - 3] + "\n";
    				msg += logsData [logsData.Count - 2] + "\n";
    				msg += logsData [logsData.Count - 1] + "\n";
    			}

    kschingiz, 12 Ноября 2015

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

    +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
    struct DateTime {
        string x;
        DateTime() { x = Now(); } 
        DateTime(const string& _x): x(_x) { if (BadDateTime) throw Exception(); }
        operator string() { return x; }
    };
    
    string correctDateTime(const string& value)
    {
        try
        {
            DateTime(value); // if the value is bad, ctor will throw
            return value;
        }
        catch (…) {}
        return DateTime(); // and we replace bad DateTime with currentDateTime
    }

    Где ошибка?

    Bobik, 04 Ноября 2015

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