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

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

    −1

    1. 1
    https://stackoverflow.com/questions/51521158/in-python-why-does-0xbin-return-false

    Свежий обосрамс питона

    syoma, 26 Июля 2018

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

    +7

    1. 1
    github.com/natribu/natribu.org

    Исходники официального сайта нахуй, жесть

    dm_fomenok, 22 Июля 2016

    Комментарии (77)
  4. Куча / Говнокод #18461

    +144

    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
    Флоат даёт ошибки только тогда, когда он плывёт. 
    На вычислении всяких косинусов он не плывёт - поэтому ошибки там врядли возможны.
    
    Точность не будет падать - её не будет, вместо неё будет округленчиский мусор.
    
    Каким образом у вас это получилось - я не знаю, ибо у меня cos(M_PI_2) = ноль. 2.0f*2.0f = 4.0.
    
    Конпелятор всегда знает, ибо нормальные про-пацаны юзают фичи конпелятора, и умеют писать код. 
    В гцц есть такие штуки - builtin_*() - ими запиленны аналоги самых популярных libc функций. 
    ГГЦ абсалютно точно умеет определять константы - для этого есть свой builtin_constant_p() - 
    который в любом куске кода тебе 100% скажет - константа эта перменная, либо нет.
    
    Дак вот, в гцц даже можно писать так:
    
      static const double cos_pi = cos(M_PI);//глобальная статик-константа, которая в компилтайме инициализируется результатом вызова функции cos(). Это не особо профитно, ибо издревли система констант в Си лютое говно.
    Так же в гцц есть атрибуты, один из которых const - он говорит, что твоя функция не имеет побочных эффектов. 
    И все функции, которые их не имеют - принято так помечать, особенно в glibc и libgcc.
    
    А всё почему? Патамучто их пишут более-менее про-пацаны. 
    Конпелятору не нужно ничего знать - знает программист, который пишет, а конпелятор должен предоставить ему фичи, 
    с которыми он может пилить нормальный код, а не говно. 
    А неосиляторам подавай оптимизиторы, автоматизаторы и прочую ересь, от которой толка нет, а гонору много.

    http://ru.stackoverflow.com/questions/245261/Неправильная-работа-cos
    Как-то я проебал открытие сего быдлятника. Когда читал ответ сходу какое-то знакомое чувство, будто я знаю автора.

    3.14159265, 10 Июля 2015

    Комментарии (77)
  5. PHP / Говнокод #18152

    +165

    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
    // Whoever introduced xml to shipping companies should be flogged
    $xml  = '<?xml version="1.0"?>';
    $xml .= '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://fedex.com/ws/rate/v10">';
    $xml .= '	<SOAP-ENV:Body>';
    $xml .= '		<ns1:RateRequest>';
    $xml .= '			<ns1:WebAuthenticationDetail>';
    
    // почти сотня строк
    
    $xml .= '</SOAP-ENV:Envelope>';
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

    Смотри-ка, оно еще и ругается

    https://github.com/opencart/opencart/blob/58eeb544e2eddbe18b00224e10d2761259e8ce7b/upload/catalog/model/shipping/fedex.php#L48

    Fike, 12 Мая 2015

    Комментарии (77)
  6. JavaScript / Говнокод #16040

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function FindPosOfStr(str1, str2) {
    	for (i = 0; i <= str1.length; i++) {
    		comp = str1.substring(i, str1.length);
    		comp = comp.substring(0, str2.length);
    		if (comp == str2) {
    			return i;
    			break;
    		}
    	}
    	return -1;
    }

    Вот такое вот веселье встретилось в одном проекте. Кто-то был сильно пьян и забыл про indexOf

    _rMX_, 22 Мая 2014

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

    +4

    1. 1
    2. 2
    3. 3
    namespace std
    {
      template<class T, class T2> class common_type<::std::shared_ptr<T>, ::std::shared_ptr<T2> >: public ::std::common_type<T, T2>{};

    LispGovno, 22 Января 2014

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

    +7

    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
    #include <iostream>
    #include <alloca.h>
    #include <stdlib.h>
    #include <new>
    using namespace std;
    
    int main(void) {
      const size_t N = 5+rand()%4;
      char* arr = ::new (alloca(N)) char[N]{1,2,3,4};
      for(size_t i=0; i<N; ++i)
        cout<<(int)arr[i]<<endl;
      cout<<"ok";
      return 0;
    }

    http://ideone.com/pax1TF

    LispGovno, 18 Января 2014

    Комментарии (77)
  9. Ruby / Говнокод #14245

    −87

    1. 1
    2. 2
    # ugh
    task = task.task.task

    http://programmingisterrible.com/post/50285403468/a-lifetime-of-terrible-code

    someone, 18 Декабря 2013

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

    +18

    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
    #include "math.h"
    #include <iostream>
    
    void Resolve(
    	float a, float b, float c,     // коэффициенты уравнения
    	int& count, float x[2]  // число корней, сами корни
    	// если корней нет, то значения x[0] и x[1] не определены
    	// если корень один, то значение x[1] не определено
    	// если  корней бесконечно много, то вернуть INT_MAX
    	// предполагается, что a,b,c и корни по модулю не превосходят 1E10
    	)
    {
    	const float MAXFREV = 1e-10f;
    	if (a==0.0 && b==0.0 && c==0.0)
    	{
    		count = INT_MAX;
    	} else
    	{
    		count = 0;
    		float d = b*b-4.0f*a*c;
    		if (d==0.0f)
    		{
    			if (2.0f*abs(a)>abs(b)*MAXFREV) 
    				x[count++] = -b/(2.0f*a);
    		} else if (d>0.0f)
    		{
    			float num = -b - sqrt(d);
    			if (2.0f*abs(a)>abs(num)*MAXFREV)
    				x[count++] = num/(2.0f*a); // (-b-sqrt(d))/2a
    			if (abs(num)>2.0f*abs(c)*MAXFREV)
    				x[count++]=(2.0f*c)/num;
    		}
    	}
    }
    
    
    int main () 
    {
    	float x[2];
    	int count;
    	Resolve (0.0001f,2.000f,0.001f, count, x);
    	std::cout << "count= " << count;
    	if (count<=2)
    		for (int i=0; i<count; ++i)
    			std::cout << ", x[" << i << "]= " << x[i];
    	std::cout<<std::endl;
    	return 0;
    }

    Просто решение квадратного уравнения.
    На флоатах.
    Числа подобраны так, что классическая формула лажает, выдавая второй корень -0.000596 вместо -0.0005

    TarasB, 18 Июня 2013

    Комментарии (77)
  11. Pascal / Говнокод #12304

    +82

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    var
      u: longint;
     
    begin
      u := $-80000000;
      writeln(u);
    end.

    Жуквери в Дельфи7. Компилируется.

    TarasB, 18 Декабря 2012

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