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

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

    +139

    1. 1
    2. 2
    byteL = (length & (0x00ff));
    byteH = (length - byteL)>>BITS_IN_BYTE;

    Вдруг биты справа полезут прямо из компьютера, давайте вычтем!
    Макрос BITS_IN_BYTE особенно радует!

    sermp, 04 Декабря 2013

    Комментарии (19)
  3. JavaScript / Говнокод #14147

    +166

    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
    function ghgh(){
            var arr = document.getElementsByClassName("rend");
    
    
            for (var i = 0; i < arr.length; i++){
                if(arr[i] !== undefined){
                var gfyuwegf = arr[i].getElementsByClassName("testblk");
                for(var k = 0; k < gfyuwegf.length; k++){
                    // hjf
                var klkl = gfyuwegf[k].innerHTML.split('/');
                console.info(klkl);
                        if(klkl[0] == ""){
                            //console.info("! == 0");
                            if(klkl[1] === "0"){
                                arr[i].getElementsByClassName("customer")[0].innerHTML += klkl[3]+" "+klkl[4];
                                arr[i].getElementsByClassName("subdiler")[0].innerHTML += klkl[3]+" "+klkl[4];
                                arr[i].getElementsByClassName("diler")[0].innerHTML += klkl[3]+" "+klkl[4];
                                arr[i].getElementsByClassName("vip")[0].innerHTML += klkl[3]+" "+klkl[4];
                        } else if(klkl[1] === "1"){
                                arr[i].getElementsByClassName("customer")[0].innerHTML += klkl[3]+" "+klkl[4];
                       } else if(klkl[1] === "3"){
                                arr[i].getElementsByClassName("subdiler")[0].innerHTML = klkl[3]+" "+klkl[4];
                        } else if(klkl[1] === "4"){
                                arr[i].getElementsByClassName("diler")[0].innerHTML = klkl[3]+" "+klkl[4];
                        } else if(klkl[1] === "5"){
                                arr[i].getElementsByClassName("vip")[0].innerHTML = klkl[3]+" "+klkl[4];
                        }
                    }else{
                        if(klkl[1] === "0"){
                            //
                                arr[i].getElementsByClassName("customer")[0].getElementsByClassName("customer-"+klkl[0])[0].innerHTML += klkl[3]+" "+klkl[4];
                                arr[i].getElementsByClassName("subdiler")[0].getElementsByClassName("subdiler-"+klkl[0])[0].innerHTML += klkl[3]+" "+klkl[4];
                                arr[i].getElementsByClassName("diler")[0].getElementsByClassName("diler-"+klkl[0])[0].innerHTML += klkl[3]+" "+klkl[4];
                                arr[i].getElementsByClassName("vip")[0].getElementsByClassName("vip-"+klkl[0])[0].innerHTML += klkl[3]+" "+klkl[4];
                        }else if(klkl[1] === "1"){
                                arr[i].getElementsByClassName("customer")[0].getElementsByClassName("customer-"+klkl[0])[0].innerHTML = klkl[3]+" "+klkl[4];
    
            }else if(klkl[1] === "3"){
                                arr[i].getElementsByClassName("subdiler")[0].getElementsByClassName("subdiler-"+klkl[0])[0].innerHTML = klkl[3]+" "+klkl[4];
    
            }else if(klkl[1] === "4"){
                                arr[i].getElementsByClassName("diler")[0].getElementsByClassName("diler-"+klkl[0])[0].innerHTML = klkl[3]+" "+klkl[4];
    
            }else if(klkl[1] === "5"){
                                arr[i].getElementsByClassName("vip")[0].getElementsByClassName("vip-"+klkl[0])[0].innerHTML = klkl[3]+" "+klkl[4];
    
            }
    
            }
            }
        }
            }
        };
        ghgh();

    Я минисериал придумал "Новый программист на старой работе".
    Пожалуй название ghgh для этой функции самое то.
     
    Код зафигачен прямо в html-шаблоне
    В проекте подключен жеквери.

    хуита, 27 Ноября 2013

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

    +11

    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
    void run(std::map<QString, QString> params,QTextStream &os) const
    	{
    
    		static int ko=0;
    			ko++;
    			//r->method_="GET";
    			srand(time(0));// без этого числа будут одинаковые
    			QString  randomData="["+ (QString::number(ko))+" , "+ (QString::number(rand()%100))+ "]";
    			//int index= params["idChpu"].toInt();
    			std::list<QString> idsparams=getIdsDataRequest(params["dataRequestIds"]);
    			QString dataInIds="";
    			//for (auto idParam=idsparams.begin();idParam!=idsparams.end();idParam++)
    			for (const auto &idParam : idsparams)
    			{
    				qDebug()<<idParam;
    				auto kokoFunction=[](const std::function<QString()> & function){QString date; for(auto i=0 ;i<10;i++){date+= function()+QString(" , ");} ; return date;};
    				if (idParam==QString("id0"))
    				{dataInIds=dataInIds+QString("\"")+(idParam)+QString("\"")+QString(":[")+kokoFunction([](){return QString::number((ko++));})+QString::number((ko++))+QString("],");}
    				else
    				{dataInIds=dataInIds+QString("\"")+(idParam)+QString("\"")+QString(":[")+kokoFunction([](){return QString::number(rand()%100);})+QString::number(rand()%100)+QString("],");}
    			};
    			QString jsonData=QString("{")+
    						QString("\"idLastKey\":\"10\",")+dataInIds+QString("}");
    
    		qDebug()<<"TgetDataOnRequest run</h1>";
    		os << "HTTP/1.0 200 Ok\r\n"
    				"Content-Type: text/html; charset=\"windows-1251\"\r\n"
    				"\r\n"<<jsonData<<//randomData<<
    				"\n";
    
    //				  << QDateTime::currentDateTime().toString() << connectionSettings.getUrl()<<"\r\n"<<connectionSettings.getViewRequest()<<"\n";
    	}

    Надеюсь это временный код, но очень сомневаюсь.

    laMer007, 20 Ноября 2013

    Комментарии (19)
  5. Куча / Говнокод #13674

    +126

    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
    57. 57
    58. 58
    59. 59
    import Data.Char
    import Data.List
    
    digitRangeToRegex :: Integer -> Integer -> String
    digitRangeToRegex min max
        | min == max = digit min : ""
    -- uncomment if you want \d instead of [0-9]
    --    | min == 0 && max == 9 = "\\d"
        | min >= 10 || max <= 9 = "[" ++ rangeToStr (digit min) (digit max) ++ "]"
        | otherwise = "[" ++ rangeToStr (digit min) '9' ++ rangeToStr 'a' (digit max) ++ "]"
        where
            rangeToStr min max
                | min == max = min : ""
                | otherwise = min : '-' : max : ""
            digit d
                | d >= 0 && d <= 9 = chr (ord '0' + fromIntegral d)
                | d < 36 = chr (ord 'a' + fromIntegral d - 10)
    
    numberRangeToRegex :: Integer -> Integer -> Integer -> String
    numberRangeToRegex base min max
        | min == 0 && max == 0 = "0"
        | cmin == cmax = intercalate "|" $ map formatRanges $ step dmin dmax
        | otherwise = intercalate "|" $
            (map formatRanges $ step dmin (replicate cmin (base-1))) ++
            (if cmin + 1 < cmax then [digitRangeToRegex 1 (base - 1) ++ digitRangeToRegex 0 (base-1) ++ formatCount cmin (cmax-2)] else []) ++
            (map formatRanges $ step (1 : replicate (cmax-1) 0) dmax)
        where
            digits 0 = [0]
            digits n = reverse $ map (`mod` base) $ takeWhile (>0) $ iterate (`div` base) n
            dmin = digits min
            dmax = digits max
            cmin = length dmin
            cmax = length dmax
            step [] [] = [[]]
            step (a:as) (b:bs) =
                if a == b then
                    prepend a $ step as bs
                else
                    (if zeroHead then [] else prepend a $ step as nines) ++
                    (if na > nb then [] else [(na, nb) : replicate (length as) (0, base-1)]) ++
                    (if nineTail then [] else prepend b $ step zeros bs)
                where
                    suffixLen = length as
                    zeroHead = all (== 0) as
                    nineTail = all (== base-1) bs
                    na = if zeroHead then a else a+1
                    nb = if nineTail then b else b-1
                    zeros = replicate suffixLen 0
                    nines = replicate suffixLen (base-1)
                    prepend x = map ((x, x):)
            formatRanges = concatMap formatGroup . group . dropWhile (== (0,0)) where
                formatGroup [(min, max)] = digitRangeToRegex min max
                formatGroup xs@((min, max) : _)
                    | min == max = concat $ replicate (length xs) $ digitRangeToRegex min max
                    | otherwise = digitRangeToRegex min max ++ "{" ++ show (length xs) ++ "}"
            formatCount min max
                | min == 1 && max == 1 = ""
                | min == max = "{" ++ show min ++ "}"
                | otherwise = "{" ++ show min ++ "," ++ show max ++ "}"

    Генератор реджексов, проверяющих диапазон чисел. Говнецо то еще, причем не только в реализации и выхлопе, но и в самой идее :)

    Пример: http://ideone.com/FzAmYd

    bormand, 27 Августа 2013

    Комментарии (19)
  6. Java / Говнокод #13418

    +70

    1. 1
    final int mazeBlockSize = mazeBlock.getIconWidth();       // it is square, OKAY?!

    Как я пакмена писал

    vortexx1, 13 Июля 2013

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

    +20

    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
    57. 57
    58. 58
    59. 59
    #include <iostream>
    #include <cstring>
    
    const char tag[] = "Secret tag!";
    const size_t tagSize = sizeof(tag);
    const size_t nameSize = 32;
    
    template<class T>
    struct Value
    {
        Value(const char* name, const T& data) :
    data(data)
    {
        std::strncpy(this->tag, ::tag, tagSize);
        std::strncpy(this->name, name, nameSize);
    }
    char tag[tagSize];
    char name[nameSize];
    T data;
    };
    
    int getStackDir()
    {
        char a;
        char b;
        return &b > &a ? 1 : -1;
    }
    
    template<class T>
    T getValue(const char* name)
    {
        static const size_t stackSize = 1024 * 1024;
        const int stackDir = getStackDir();
        char begin;
        for(char* p = &begin, *end = &begin - stackSize * stackDir; p != end; p -= stackDir)
        {
            Value<T>* value = (Value<T>*)p;
            if(std::strcmp(value->tag, tag) != 0) continue;
            if(std::strcmp(value->name, name) != 0) continue;
            return value->data;
        }
        return T();
    }
    
    #define SET(type, name, value) Value<type> name(#name, value)
    #define GET(type, name) getValue<type>(#name)
    
    //-----------------------------------------------------------
    
    void test()
    {
        std::cout << GET(int, x) << std::endl;
    }
    
    int main()
    {
        SET(int, x, 13);
        test();
    }

    Отсюда http://www.rsdn.ru/forum/cpp/5163916.flat#5163916

    Artur, 13 Мая 2013

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //***Никогда не использовать))))
    	static function isset_not_empty($val){
    		if(isset($val) and !empty($val)) return true;
    		return false;
    	}

    погорячившийся))

    govnarkod, 06 Апреля 2013

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

    +133

    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
    abstract class A { }
    
    abstract class B
    {
         void CallValidate(A objA)
         {
              MethodInfo info = base.GetType().GetMethod("Validate", new[] { objA.GetType() });
    
              if (info == null)
              {
                   throw new ApplicationException("The method 'Validate' with parameter type '" + objA.GetType() + "' is not implemented.");
              }
    
              info.Invoke(this, new object[] { objA });
         }
    }

    Метод CallValidate базового класса проверяет наличие метода "Validate" с нужной сигнатурой в своих дочерних классах и вызывает его, если таковой есть, иначе - кидает исключение.

    Guid, 02 Апреля 2013

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

    +151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public static function checkCurl()
    {
    	if (in_array("curl", get_loaded_extensions()))
    		return TRUE;
    	else
    		return FALSE;
    }

    function_exist? Не, не слышал. Мануалы для лохов.

    DrFreez, 25 Марта 2013

    Комментарии (19)
  11. bash / Говнокод #12698

    −116

    1. 1
    pattern=hidden; find . | grep -e ".*\.java$" | xargs sh -ac 'for arg in $@; do cat -n $arg | grep -e "$pattern" > /dev/null && echo $arg && cat -n $arg | grep -e "$pattern"; done'

    Нужно было поискать юзаджи по коду.
    Вот такое вот наворотил.
    Каюсь...

    myzone, 06 Марта 2013

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