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

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

    +46

    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
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    //Сом ненужный щит
    
    #include <iostream>
    using namespace std;
    
    #include <string>
    #include <iostream>
    
    struct Tracer {
       Tracer(void)
          :m_name("(none)")
       {
          std::cout << "[" << m_name << "]    " << __PRETTY_FUNCTION__ << std::endl;
       }
       Tracer(const std::string & name)
          :m_name(name)
       {
          std::cout << "[" << m_name << "]    " << __PRETTY_FUNCTION__ << std::endl;
       }
       Tracer(const Tracer & other)
          :m_name(other.m_name)
       {
          std::cout << "[" << m_name << "]    " << __PRETTY_FUNCTION__ << std::endl;
       }
       Tracer(const Tracer && other)
          :m_name(other.m_name)
       {
          std::cout << "[" << m_name << "]    " << __PRETTY_FUNCTION__ << std::endl;
       }
       Tracer & operator=(const Tracer & other) {
          m_name = other.m_name;
          std::cout << "[" << m_name << "]    " << __PRETTY_FUNCTION__ << std::endl;
          return *this;
       }
       Tracer & operator=(const Tracer && other) {
          m_name = other.m_name;
          std::cout << "[" << m_name << "]    " << __PRETTY_FUNCTION__ << std::endl;
          return *this;
       }
       ~Tracer() {
          std::cout << "[" << m_name << "]    " << __PRETTY_FUNCTION__ << std::endl;
          m_name="You looser!";
       }
    
       std::string m_name;
    };
    
    //Тот щит, ради чего всё затевалось
    
    template<class T> const T&  Min(const T &x, const T &y) { return (x.m_name < y.m_name) ? x : y; }
    
    int main() {
      const Tracer& mr = Min(Tracer("a"), Tracer("b"));
      cout<<"Some work with mr: "<<mr.m_name<<endl;
      return 0;
    }

    [b] Tracer::Tracer(const string&)
    [a] Tracer::Tracer(const string&)
    [a] Tracer::~Tracer()
    [b] Tracer::~Tracer()
    Some work with mr:

    Этож сколько я коммитов сделал с возвратом константной ссылки на константный параметр.

    LispGovno, 04 Февраля 2014

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

    +153

    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
    $db = new Db();
                    $db->prepare('SELECT `ID`, `Title`, `Date`, `Active` FROM `videos` WHERE `UserID` = :userId AND `is_temporary` = 0 ORDER BY `Date` DESC')
                            ->bindInt(':userId', $userId)
                            ->execute();
                    $dbResult = $db->fetchAll();
                    if (empty($dbResult)) return array();
                    $orderDir = strtoupper($orderDir);
                    if (!in_array($orderDir, array('DESC', 'ASC'))) $orderDir = 'DESC';
                    if (empty($filter) && $orderDir == 'DESC') return ArrayHelper::extract($dbResult, 'ID', ArrayHelper::INT);
                    $db->prepare('CREATE TEMPORARY TABLE `videos_tmp` (
                                            `id` INT(11),
                                            `title` VARCHAR(256),
                                            `date` DATETIME,
                                            `active` VARCHAR(1)
                                    ) ENGINE = MEMORY
                                CHARACTER SET utf8
                                COLLATE utf8_general_ci')
                            ->execute();
                    foreach ($dbResult as $row) {
                            $db->prepare('INSERT INTO `videos_tmp` (`id`, `title`, `date`, `active`) VALUES (:id, :title, :date, :active)')
                                    ->bindInt(':id', $row['ID'])
                                    ->bindStr(':title', $row['Title'])
                                    ->bindStr(':date', $row['Date'])
                                    ->bindStr(':active', $row['Active'])
                                    ->execute();
                    }
                    $sql = 'SELECT `id` FROM `videos_tmp` WHERE 1';
                    if (isset($filter['active'])) $sql .= ' AND `Active` = :active';
                    if (isset($filter['search'])) $sql .= ' AND `title` LIKE :search';
                    if (isset($filter['fromDate'])) $sql .= ' AND `Date` >= :fromDate';
                    if (isset($filter['toDate'])) $sql .= ' AND `Date` <= :toDate';
                    $sql .= ' ORDER BY `Date` ' . $orderDir;
                    $stmt = $db->prepare($sql);
                    if (isset($filter['active'])) $stmt->bindStr(':active', $filter['active']);
                    if (isset($filter['search'])) $stmt->bindStr(':search', '%' . $filter['search'] . '%');
                    if (isset($filter['fromDate'])) $stmt->bindStr(':fromDate', $filter['fromDate']);
                    if (isset($filter['toDate'])) $stmt->bindStr(':toDate', $filter['toDate']);
                    $stmt->execute();
                    $dbResult = $db->fetchAll();
                    $db->prepare('DROP TABLE `videos_tmp`')->execute();

    Извиняюсь, что так много, но какого слоника надо было делать выборку, создавать временную таблицу и делать выборку снова - загадка.

    begmst, 10 Января 2014

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

    −134

    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
    Функция ПолучитьОбратнуюМетрику(Знач Метрика) Экспорт
    
    	ТаблицаКоординат = СоздатьТаблицуКоординат();
    	ПреобразоватьМетрикуВТаблицуКоординат(Метрика,ТаблицаКоординат);
    	ТаблицаКоординат.Колонки.Добавить("ПорядковыйНомер");
    	
    	Сч = 1;
    	Для каждого СтрокаТаблицаКоординат Из ТаблицаКоординат Цикл
    		СтрокаТаблицаКоординат.ПорядковыйНомер = Сч;
    		Сч = Сч + 1;
    	КонецЦикла;
    	
    	ТаблицаКоординат.Сортировать("ПорядковыйНомер УБЫВ");
    	
    	ОбратнаяМетрика = "";
    	ПреобразоватьТаблицуКоординатВМетрику(ТаблицаКоординат,ОбратнаяМетрика);
    	Возврат ОбратнаяМетрика;
    
    КонецФункции

    TamerlanDE, 20 Декабря 2013

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

    +157

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    that.add = function(rule, handler){
        if(typeof handler == 'function'){
            var ruleArray = rule.split('.'),
                  ruleLength = ruleArray.length;
            rule = stack;
            cm.forEach(ruleArray, function(str, i){
                rule = rule[str] && rule[str].constructor == Array && rule[str].push(handler) || (++i < ruleLength)? (rule[str] = {}) : (rule[str] = [handler]);
            });
        }
        return that;
    };

    Захотелось запихнуть всё в одну строку ) Вовремя остановился и переделал )

    SerDIDG, 28 Ноября 2013

    Комментарии (29)
  6. ActionScript / Говнокод #13927

    −92

    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
    package
    {
        import flash.display.Stage;
    
        public class StageLocator {
    
            public static var instance:StageLocator;
    
            public static var stage:Stage;
    
            public function StageLocator (_stage:Stage) {
    
                instance = this;
    
                stage = _stage;
            }
        }
    }

    Гадаю, в чем же заключается сокровенный смысл instance и вообще этого класса.

    strax, 10 Октября 2013

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

    +159

    1. 1
    window.setTimeout(function(){window.location.reload();}, 34740000);

    Для терпеливых.

    Stallman, 08 Сентября 2013

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

    +125

    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
    var colorInfoList = new List<ColorInfo>()
                    {
                        new ColorInfo("#000000", "	black", "	Черный"),
                        new ColorInfo("#000080","	navy","	Темно-синий"),
                        new ColorInfo("#00008B","	darkblue","	Темно-голубой"),
                        new ColorInfo("#0000CD","	mediumblue","	Умеренно-голубой"),
                        new ColorInfo("#0000FF","	blue	","Голубой"),
                        new ColorInfo("#006400","	darkgreen","	Темно-зеленый"),
                        new ColorInfo("#008000","	green","	Зеленый"),
                        new ColorInfo("#008080","	teal","	Чайный"),
                        new ColorInfo("#008B8B","	darkcyan","	Темный циан"),
                        new ColorInfo("#00BFFF","	deepskyblue","	Темный небесно-синий"),
                        new ColorInfo("#00CED1","darkturquoise	","Темно-бирюзовый"),
                        new ColorInfo("#00FA9A","	mediumspringgreen","	Умеренный синевато-серый"),
                        new ColorInfo("#00FF00","	lime","	Известковый"),
                        new ColorInfo("#00FFFF","	aqua","	Синий"),
                        new ColorInfo("#2E8B57","	seagreen","	Морской волны"),
                        new ColorInfo("#32CD32","	limegreen","	Зеленовато-известковый"),
                        new ColorInfo("#4B0082","	indigo","	Индиго"),
                        new ColorInfo("#696969","	dimgray","	Тускло-серый"),
                        new ColorInfo("#7CFC00","	lawngreen","	Зеленой травы"),    
                        new ColorInfo("#7FFFD4","	aquamarine","	Аквамарин"),
                        new ColorInfo("#800000","	maroon","	Оранжево-розовый"),
                        new ColorInfo("#808080"," 	gray","	Серый"),
                        new ColorInfo("#8B0000","	darkred","	Темно-красный"),
                        new ColorInfo("#9ACD32","	yellowgreen","	Желто-зеленый"),
                        new ColorInfo("#A52A2A","	brown","	Коричневый")
                    };
    
    
            public ColorInfo ColorCheck(List<ColorInfo> list, string colorHex)
            {
                for (int i = 0; i < list.Count-1; i++)
                {
                    if (String.Compare(list[i].HexInfo, colorHex, StringComparison.Ordinal) <= 0 && String.Compare(list[i + 1].HexInfo, colorHex, StringComparison.Ordinal)>=0)
                        return list[i+1];
                }
                return new ColorInfo();
            }

    Определение названия цвета

    iofjuupasli, 17 Июля 2013

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

    +79

    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
    package testapp;
    
    public class TestApp {
        
        public static void main(String[] args) {
            int count = 0;
            for (int i = 0; i < 1000000; i++) {
                if (isLucky(i)) {
                    System.out.println(i);
                    count++;
                }
            }
            System.out.println("Total: " + count);
        }
        
        static boolean isLucky(final int n) {
            String num = Integer.toString(n);
            switch(6 - num.length()) {
                case 1: 
                    num = "0".concat(num);
                    break;
                case 2:
                    num = "00".concat(num);
                    break;
                case 3:
                    num = "000".concat(num);
                    break;
                case 4: 
                    num = "0000".concat(num);
                    break;
                case 5: 
                    num = "00000".concat(num);
                    break;
            }
            
            return (((getDigitAt(num, 0) + getDigitAt(num, 1) == getDigitAt(num, 2) + getDigitAt(num, 3))) & ((getDigitAt(num, 2) + getDigitAt(num, 3) == getDigitAt(num, 4) + getDigitAt(num, 5))));
        }
        
        static int getDigitAt(String number, int index) {
            return Character.getNumericValue(number.charAt(index));
        }
    }

    Моё. Проверяет числа на "счастливость". Число счастливое, если в 6-значном числе сумма каждой пары соседних цифр одинакова. Т.е 211221 - счастливое, т.к. (2+1) = (1+2) = (2+1)

    Govnocoder#0xFF, 09 Мая 2013

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

    +12

    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
    #ifndef __MAKROS_H__
    #define __MAKROS_H__
    // ...
    #define countof( array ) sizeof( array ) / sizeof( array[ 0 ] )
    
    #define IS_CLUSTER( id ) id >= FIRST_CLUSTER_ID
    
    #define CREATE_TEMP_FILE( autoclean_name, file_prefix ) \
        char create_temp_file_file_mask[ MAX_PARAM_STR_LENGTH ]; \
        snprintf( create_temp_file_file_mask, MAX_PARAM_STR_LENGTH, "%s/%sXXXXXX", config::tmp_path, file_prefix ); \
        int create_temp_file_desc=mkstemp( create_temp_file_file_mask ); \
        if(create_temp_file_desc<0) \
    { \
            DEBUG_E( Interface, "Cannot create temporary file: %s\n", create_temp_file_file_mask ); \
            ret=RET_CANTOPENFILE; \
            CHECK_RET(sock, ret); \
            return true; \
    } \
        close(create_temp_file_desc); \
        autoclean autoclean_name( create_temp_file_file_mask );
    
    #endif // __MAKROS_H__

    Это просто праздник какой-то

    roman-kashitsyn, 02 Апреля 2013

    Комментарии (29)
  11. Куча / Говнокод #12042

    +100

    1. 1
    2. 2
    3. 3
    4. 4
    <form action="/cgi-bin/repare.mpl" method="post" enctype="multipart/form-data" class="frm">
    	<input type="hidden" name="sql" value="UPDATE  parcels p, parcels_doc d SET p.state = 'transporter_store' WHERE  d.doctype = 'confirm.L'  AND d.docid IN ($SORD)  AND p.good  IN ($ter)  AND d.docitem = p.good  AND p.state <> 'transporter_store'  AND d.parcel = p.id">
    	<input type="submit" class="butt" name="main_ok" value="Исправить">
    </form>

    Нашли тут в боевом проекте шедевральную SQL Injection "by design".

    aml, 01 Ноября 2012

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