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

    В номинации:
    За время:
  2. Куча / Говнокод #17954

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Господа.  Помогите решить хитрую задачку.  
    Есть у меня проект корне которого лежат файлик весь проект под контролем git кроме этого файлика. там конфигурация специфичная для тестового сервера.  
    Вот мне нужно сделать еще одну ветку, и как бы сделать так что бы этот файлик был подконтрольный гиту  в этой ветке. 
    т.е. когда я делаю checkout файлик  менялся.  А когда push файлик игнорировался бы.  
    Очень буду благодарен если кто подскажет как быть.

    Vasiliy, 07 Апреля 2015

    Комментарии (88)
  3. Objective C / Говнокод #16680

    −405

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    -(BOOL)isForEvenNumberPage
    {
        return self.pageNumber % 2 == 0;
    }
    
    -(BOOL)isForOddNumberPage
    {
        return [self isForEvenNumberPage] == NO;
    }

    Один очень крупный проект от заокеанского заказчика

    stonerhawk, 11 Сентября 2014

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

    +8

    1. 1
    if(!(a - b))

    LispGovno, 12 Июня 2014

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

    +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
    // Как вы думаете какой вариант кода более правильный?
    using System;
    using System.Linq;
    public class Program {
        public static int Puzzle(string s) {
            return s.Where(x=>x=='a').Count();
        }
    }
    // Или вот этот?
    using System;
    using System.Linq;
    public class Program {
        public static int Puzzle(string s) {
            return s.Count(x=>x=='a');
        }
    }
    //С точки зрения Майкрософт 1-ый вариант лучше

    Майкрософт запустила игру головоломку, каждая из головоломок решается определнным кодом. После - элегантность решения оценивается, весьма неоднозначным способом.
    Подробнее - https://www.codehunt.com/ и статейка на хабре http://habrahabr.ru/post/223173/ . Данная особенность замечена не мной, задачи 2.06 и 2.07

    Zuzik, 18 Мая 2014

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

    +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
    QVector<int> v1;
    v1.push_back(1);
    v1.push_back(2);
    
    // взяли итератор на нулевой элемент вектора v1
    QVector<int>::iterator it = v1.begin();
    
    // замутили копию
    QVector<int> v2 = v1;
    
    v1[1] = 42;
    *it = 5;
    v2[1] = 100500;
    
    // и что же мы получим?
    qDebug() << v1; // QVector(1, 42)
    qDebug() << v2; // QVector(5, 100500)

    Ловим лулзы с implicit sharing'ом.

    Мораль (она описана в доке): нельзя копировать implicit shared контейнер пока живы и используются неконстантные итераторы на его элементы.

    bormand, 06 Мая 2014

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

    +15

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    struct Point3D {
      float x,y,z;
    
      float& operator [] (int i) {
        switch (i) {
        case 0: return x;
        case 1: return y;
        case 2: return z;
        default: assert(false);
        }
      }
    };

    Писал Жабапоглащенный.

    LispGovno, 08 Января 2014

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

    +23

    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
    const Tifon& Tifon::operator=(const Tifon& Buffer)
    {
            assert(&Buffer!=this);
            if(&Buffer==this)
                    return *this;
            Tifon OldForExceptionSafe(*this);
            try{
                    this->~Tifon();
                    ::new((void*)this)Tifon(Buffer);
            }catch(...){//try restore
                    ::new((void*)this)Tifon(OldForExceptionSafe);
            }
            return *this;
    };
     //...
    namespace std
    {
            const Tifon&swap (Tifon& a, Tifon& b) {
            assert(&a!=&b);
            if(&a==&b)
                    return a;
            Tifon c(a);
            a=b;
            b=c;
            }
    };

    USB, 22 Июля 2012

    Комментарии (88)
  9. Pascal / Говнокод #8447

    +111

    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
    var
    s:string;
    begin
    repeat
    readln(s);
    until
    (length(s)=4)
    and(
                    (s[1]='1')
                  or(s[1]='2')
                  or(s[1]='3')
                  or(s[1]='4')
                  or(s[1]='5')
                  or(s[1]='6')
                  or(s[1]='7')
                  or(s[1]='8')
                  or(s[1]='9')
                              )
    and(
                    (s[2]='1')
                  or(s[2]='2')
                  or(s[2]='3')
                  or(s[2]='4')
                  or(s[2]='5')
                  or(s[2]='6')
                  or(s[2]='7')
                  or(s[2]='8')
                  or(s[2]='9')
                  or(s[2]='0')
                              )
    and(
                    (s[3]='1')
                  or(s[3]='2')
                  or(s[3]='3')
                  or(s[3]='4')
                  or(s[3]='5')
                  or(s[3]='6')
                  or(s[3]='7')
                  or(s[3]='8')
                  or(s[3]='9')
                  or(s[3]='0')
                              )
    and(
                    (s[4]='1')
                  or(s[4]='2')
                  or(s[4]='3')
                  or(s[4]='4')
                  or(s[4]='5')
                  or(s[4]='6')
                  or(s[4]='7')
                  or(s[4]='8')
                  or(s[4]='9')
                  or(s[4]='0')
                              )
    end.

    Нашёл у себя из первого курса.

    ReallyBugMeNot2, 07 Ноября 2011

    Комментарии (88)
  10. Pascal / Говнокод #6689

    +107

    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
    function HexToInt(s: string): integer;
    label
      gte;
    var
      tempt: string;
      i: integer;
    begin
      tempt := '';
      if s = '' then
      begin
        HexToInt := 0;
        goto gte;
      end;
      for i := 1 to Length(s) do
      begin
        tempt := tempt + IntToHex(Ord(s[i]), 2);
      end;
      HexToInt := StrToInt('$' + tempt);
      gte:
    end;

    Ряд гениальных решений из-за незнания особенностей языка.

    Честно взято с: http://www.delphisources.ru/pages/faq/base/hex_to_int.html
    Честно написано автором: Перегинец Иваном ( [email protected] )

    miLord-Corwin, 17 Мая 2011

    Комментарии (88)
  11. Lua / Говнокод #28273

    −3

    1. 1
    Блять, какое же lua говно блять...

    kcalbCube, 06 Июля 2022

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