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

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

    +83

    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
    // java.io.FilterOutputStream
    public void close() throws IOException {
        try {
            flush();
        } catch (IOException ignored) {
        }
        out.close();
    }
    
    // тестовый код
    try (OutputStream os = new BufferedOutputStream(new FileOutputStream("/tmp/little_virtual_fs/1.txt"))) {
        byte[] buf = new byte[2028544];
        os.write(buf, 0, 2028544); // максимальный размер файла, который влезает на нашу фс
        os.write(buf, 0, 5); // и еще немножко
        //os.flush();
    }

    А сейчас, на арене нашего цирка - очередная жабопроблема!

    Как думаете, каков результат выполнения тестовой программы?

    Запишет 2028549 байт? Хрен там, места маловато.
    Выдаст IOException на write()? Хрен там, буферизация.
    Выдаст IOException на close()? Хрен там, его сожрала реализация FilterOutputStream.

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

    bormand, 21 Декабря 2013

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

    +166

    1. 1
    if (substr(json_encode($row['list']), 0, 1) == '[') {

    Такой вот аналог is_array()

    Lowezar, 17 Декабря 2013

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

    +13

    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
    typedef std::queue<Msg> Queue;    
        
    
    struct SharedQueue
    {
        private:
            Queue m_queue;
            boost::mutex m_mux;
            boost::condition_variable m_condvar;    
        private:
            struct is_empty
            {
                Queue& queue;
                is_empty( Queue& q):
                    queue(q)
                {
                }
    
                bool operator()() const
                {
                    return !queue.empty();
                }
            };
        public:
            void push(const Msg& msg)
            {
                boost::mutex::scoped_lock lock(m_mux);
                m_queue.push( msg);
                m_condvar.notify_one();
            }
    
            bool try_pop( Msg& msg, Kind kind)
            {
                boost::system_time const timeout=boost::get_system_time()+ boost::posix_time::milliseconds( 30000);
                boost::mutex::scoped_lock lock( m_mux);
                if ( m_condvar.timed_wait( lock, timeout, is_empty( m_queue)))
                {
                    if( !m_queue.empty() && m_queue.front().kind == kind)
                    {
                        msg = m_queue.front();
                        m_queue.pop();
                        return true;
                    }
                }
                return false;
            }
    };

    Это ж пипец, дорогие товарищи...

    blackhearted, 29 Ноября 2013

    Комментарии (37)
  5. C# / Говнокод #14123

    +130

    1. 1
    List<KeyValuePair<string, string>> documentList = GetList();

    использование списка пар ключ-значение вместо словаря (Dictionary<string, string>)

    mozg_raka, 22 Ноября 2013

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

    +80

    1. 1
    new

    TarasB, 13 Ноября 2013

    Комментарии (37)
  7. Java / Говнокод #13945

    +81

    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
    public boolean hasNext() {
            if (vectorIndex  == vector.size()) 
                return false;
            return true;
        }
        
        public Object next() {
            try {
                return new Double(vector.getElement(vectorIndex));
            }
            catch(OutOfBoundsException e) {
                throw new RuntimeException(e);
            }
            finally {
                vectorIndex++ ;
            }
        }

    Такой вот итератор у начинающего жавера...

    d3m0n1c, 14 Октября 2013

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

    +159

    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
    var sym = new Array();
    sym["a"]=0;sym["c"]=1;sym["d"]=2;sym["e"]=3;sym["f"]=4;sym["g"]=5;sym["h"]=6;sym["k"]=7;sym["l"]=8;sym["m"]=9;sym["n"]=10;sym["p"]=11;sym["q"]=12;sym["r"]=13;sym["s"]=14;sym["t"]=15;sym["u"]=16;sym["w"]=17;sym["x"]=18;sym["z"]=19;sym["2"]=20;sym["3"]=21;sym["4"]=22;sym["5"]=23;sym["6"]=24;sym["7"]=25;
    
    function convertCode(field)
        {
            var code = $(field).val().toLowerCase();
            var convertedCode = sym[code.charAt(0)];
            
            for (var i = 1; i < code.length; i++)
                convertedCode += "_" + sym[code.charAt(i)];
    
            $(field).closest(".captcha-block").find("#captchaCode").val(convertedCode);
        }

    Я не осилил, что делает это говно? (Сбербанк-Онлайн)

    Там еще кодировка win-1251 и тег <head> открывается на 30й строке кода. Нет, я не фанат обфускации, но КАК?!

    CRRaD, 20 Августа 2013

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
    не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
    минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ. 
    Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
    
    Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.

    Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
    не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
    минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
    Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!


    Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.

    Stertor, 11 Июля 2013

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

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // проверка при дополнительных надстройках
    		if (
    				$this->struct[$num][$v]['changes'] &&		 // если значение было изменено
    				array_key_exists($v, $this->values) &&		// и существуют альтернативно назначенные тип поля (select или radio)
    				isset( $this->values[$v]['vals'] ) &&			 // и также существуют для них значения для значений...
    				!isset( $this->values[$v]['vals'][ $this->struct[$num][$v]['value'] ] )		// НО, пришедшее значение НЕ СООТВЕТСТВУЕТ
    			) {
    
    					$this->struct[$num][$v]['error'] = 'Неправильно указано значение';
    		}

    Ёжкин кот. Вот чего он хотел этим сказать? И что мне теперь с этим делать теперь?

    DoctorHouse, 19 Апреля 2013

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

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var currentTime = (new Date()).getTime();
                var diff = currentTime - this.startTime;
    
                var min = Math.floor(Math.floor(diff/1000)/60);
                if (min < 10)
                    min = "0"+min;
                var sec = Math.floor(diff/1000)%60;
                if (sec < 10)
                    sec = "0"+sec; 
    
                this.timeLabel.setString("TIME " + min + ":" + sec);

    Классика практически, моего творения. Как это можно сделать по-человечески на JS? Всякие jQuary не катят, ибо js встраиваемый.

    krypt, 12 Марта 2013

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