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

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

    +118

    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
    static double SingleToDouble(Single v)
    {
        return double.Parse(v.ToString());
    }
    
    static void Scan()
    {
        double q = 0.0;
        while (q <= 10.0)
        {
            Single s = (Single)q;
            Double d = SingleToDouble(s);
    
            if (d == q)
                MessageBox.Show(q.ToString());
            q = q + 0.1;
        }
    }

    народ, кто-нибудь знает чем можно заменить код "return double.Parse(v.ToString());" в SingleToDouble?
    "return v;" не подходит - на экран выводятся только 0, 0.5 и 4.5. А нужно чтобы все выводились 0, 0.1, 0.2 ... 0.9.

    4eburashka, 16 Декабря 2010

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

    +167

    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
    function suka($str){
    
    $length = strlen($str);
    for($i=1; $i<=$length; $i++){
    
    $b = (-1)*$i;
    $substrl .= substr($str, $b, 1);
                  }
    
    echo $substrl;
    
    }
    $govno='jizni';
    suka($govno);

    Попросил соискателя написать функцию, которая перевернет строку. Просто хотелось посмотреть подход к коду.

    zorbis, 23 Августа 2010

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

    +82

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <HTML>
    <HEAD>
    <TITLE>Коммерческий банк "ХОУМ-БАНК"</TITLE>
    </HEAD>
    <BODY>
    <table border="0" width="100%">
       <tr align="center">
       <img src="/img/home.jpg" align="top">
       </tr>
    </table>
    </BODY>
    </HTML>

    Сайт банка "Хоум-банк" (http://www.home-bank.ru). Никаких тебе пхп и жабаскрипт! Новое слово в сайтостроении! При изменении информации соответствующе фотошоппится картинка!
    Неудивительно, что у банка отозвана лицензия: http://www.lenta.ru/news/2010/07/08/homebank/

    Webkill, 08 Июля 2010

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

    +116

    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
    class DllContainer
    {
      DllContainer()
      {
        // тут грузятся дллки в количестве N.
        // LoadLibrary() + некоторые операции
      }
      
      ~DllContainer()
      {
        // FreeLibrary() и т.п.
      }
    
      template <class T>
      T* GetComponent(ComponentID id)
      {
        // аналог QueryInterface.
        // ищет компонент, проверяет можно ли статик_кастить
        // и вертает указатель нужного типа
      }  
    };
    
    class ComponentUser
    {
      void Method1()
      {
        DllContainer loader;
        SomethingDoer* comp = loader.GetComponent<SomethingDoer>(ID1);
        comp->DoSomething();
      }
      
      void Method2()
      {
        DllContainer loader;
        SomethingElseDoer* comp = loader.GetComponent<SomethingElseDoer>(ID2);
        comp->DoSomethingElse();
      }
      
      void MethodN()
      {
        DllContainer loader;
        ShitPerformer* comp = loader.GetComponent<ShitPerformer>(IDN);
        comp->PerformSomeShit();
      }
    };

    недавно обнаружил код примерно такого плана.
    крупный коммерческий проект...

    g26g, 12 Мая 2010

    Комментарии (49)
  6. 1C / Говнокод #1723

    −117.8

    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
    Если Приказ.Выбран() = 1 Тогда
    			Если Приказ.Вид() = "Приказ" Тогда
    				// это все-таки приказ
    				Если Приказ.ТипПриказа <> Перечисление.ТипыПриказов.НаВнутреннееСовмещение Тогда
    					// но приказ другой, не внутреннее совмещение
    					Продолжить;
    				КонецЕсли;
    			Иначе
    				Продолжить;
    			КонецЕсли;
    		Иначе
    			Продолжить;
    		КонецЕсли;

    Долой минимализм!

    Наговнокодили: Ингресс-лайн

    Полупрограммисты, 29 Августа 2009

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

    +848.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
    15. 15
    16. 16
    17. 17
    int p,k,l,i,j,d,q,R,t,r;
      S1:    s=0; p=1;
      S2:    if (s==0) { i=1; j=n; k=n; l=2*n+1; }
             if (s==1) { i=n+1; j=2*n; k=0; l=n+1; }
             d=1; q=p; r=p;
      S3:    if (x[i]>K>x[j]->K) goto S8;
      S4:    k=k+d; x[k]=x[i]; c[k]=c[i];
      S5:    i+=1; q-=1; if (q>0) goto S3;
      S6:    k+=d; if (k==l) goto S13; else x[k]=x[j];c[k]=c[j];
      S7:    j-=1; r-=1; if (r>0) goto S6; else goto S12;
      S8:    k+=d; x[k]=x[j]; c[k]=c[j];
      S9:    j-=1; r-=1; if (r>0) goto S3;
      S10:   k+=d; if (k==l) goto S13; else x[k]=x[i];c[k]=c[i];
      S11:   i+=1; q-=1; if (q>0) goto S10;
      S12:   q=p; r=p; d=-d; t=k; k=l; l=t; if (j-i<p) goto S10; else goto S3;
      S13:   p+=p; if (p<n) { s=1-s; goto S2; }
             if (s==0) for (t=1; t<=n; t+=1) { x[t]=x[t+n];c[t]=c[t+n] }

    Вот такой вариант сортировки предложен в одной известной книге. Оно работает...

    guest, 26 Декабря 2008

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

    +1

    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
    constexpr int add(int a, int b) 
    {
        return a + b;
    }
    
    static_assert(1 |> add(2) == and(1, 2));
    
    FILE* file = fopen( “a.txt”, “wb” );
    if (file) {
        fputs(“Hello world”, file);
        file |> fseek(9, SEEK_SET);
        file |> fclose();
    }
    
    auto dangerous_teams(std::string const& s) -> bool {
        return s
             |> views::group_by(std::equal_to{})
             |> views::transform(ranges::distance)
             |> ranges::any_of([](std::size_t s){
                    return s >= 7;
                });
    }

    http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2011r0.html

    какой C++)))

    kcalbCube, 19 Февраля 2022

    Комментарии (48)
  9. Python / Говнокод #27912

    +1

    1. 1
    description = f"""У тебя , **{ctx.author}** вот столько балов!**{cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} :polegar_para_cima:**"""

    Насмотревшиеся Хауди Хо ботопейсатели - это, конечно, нечто.
    1. Выполнение SQL-запроса вставлено прямо в шаблонизируемую строку
    2. Сам запрос формируется через форматирование строки (привет, Бобби Тейблз!)
    3. Не проверяется, вернула ли база хоть что-то.

    "Не могу понять в чем проблема?" (с)

    Vindicar, 02 Января 2022

    Комментарии (48)
  10. Go / Говнокод #27411

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    func getTransport(tt string) (iTransport, error) {
    	if tt == "scooter" {
    		return newElectricScooter(), nil
    	}
    	if tt == "quadcopter" {
    		return newQuadcopter(), nil
    	}
    	return nil, fmt.Errorf("Wrong type")
    }

    https://habr.com/ru/post/556512/
    > Factory Method Pattern
    > Привет, друзья. С вами Alex Versus.
    > Ранее мы говорили про шаблоны проектирования Одиночка и Стратегия, про тонкости реализации на языке Golang.
    > Сегодня расскажу про Фабричный метод.

    PolinaAksenova, 10 Мая 2021

    Комментарии (48)
  11. Kotlin / Говнокод #27176

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    * Returns the largest value among all values produced by [selector] function
     * applied to each element in the collection.
     * 
     * @throws NoSuchElementException if the collection is empty.
     */
    @SinceKotlin("1.4")
    @OptIn(kotlin.experimental.ExperimentalTypeInference::class)
    @OverloadResolutionByLambdaReturnType
    @kotlin.internal.InlineOnly
    public inline fun <T, R : Comparable<R>> Iterable<T>.maxOf(selector: (T) -> R): R {
        val iterator = iterator()

    MAKAKA, 25 Декабря 2020

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