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

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

    +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
    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
    protocol Multi {
        associatedtype T
        associatedtype U
    
        func printSelf()
    }
    
    extension Multi where T == Int, U == Float {
        func printSelf() {
            print("Int & Float!")
        }
    }
    
    extension Multi where T == String, U == Int {
        func printSelf() {
            print("String & Int!")
        }
    }
    
    extension Multi {
        func printSelf() {
            print("Unknown")
        }
    }
    
    class MultiImplementationIntFloat: Multi {
        typealias T = Int
        typealias U = Float
    }
    
    class MultiImplementationStringInt: Multi {
        typealias T = String
        typealias U = Int
    }
    
    class MultiImplementationInvalid: Multi {
        typealias T = Float
        typealias U = String
    }
    
    let m1 = MultiImplementationIntFloat()
    m1.printSelf()
    
    let m2 = MultiImplementationStringInt()
    m2.printSelf()
    
    let m3 = MultiImplementationInvalid()
    m3.printSelf()

    Multimethods в Swift с проверкой в compile-time

    Desktop, 10 Марта 2018

    Комментарии (47)
  3. Куча / Говнокод #23876

    +1

    1. 1
    2. 2
    3. 3
    Баг в railroad diagram, описывающей strling literal в JS (из книги Крокфорда Javascript: The Good Parts).
    
    https://i.imgur.com/8QFMrIQ.png

    Эквивалентно регулярке
    (\"([^\"^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\"^\\]+\"|\'([^\'^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\'^\\]+\')

    Ставить [ code ] боюсь, парсер уже починился?
    Ну, в общем, видно, что при таком раскладе, как на диаграмме, строковой литерал не может заканчиваться эскейп-последовательностью, что в действительности не так. Классический случай "something\n".

    vistefan, 06 Марта 2018

    Комментарии (214)
  4. PHP / Говнокод #23814

    +1

    1. 1
    2. 2
    3. 3
    if (count($this->session->userdata('search_data') > 0)) {
    ...
    }

    Видимо, это "проверка", что массив не пустой

    gorsash, 22 Февраля 2018

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    $female = $image->getOwner();
    if ($female->isMale()) {
        return true;
    }

    из дейтинг проекта

    chizdrel, 21 Февраля 2018

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    //Текстовый реквизит 
    //Событие реквизита формы НП_ТелефонПолучателя  (Строка (50)) - очистка
    
    Процедура НП_ТелефонПолучателяОчистка(Элемент, СтандартнаяОбработка)
    	НП_ТелефонПолучателя = "";
    КонецПроцедуры

    Ну чтоб уж точно очистить

    FesenkoA, 07 Февраля 2018

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

    +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
    public static synchronized Tracker getDefaultTracker() {
        Tracker tracker;
        synchronized (MainApp.class) {
            if (googleAnalTracker == null) {
                analytics = GoogleAnalytics.getInstance(app());
                GoogleAnalytics googleAnalytics = analytics;
                int i = (DEBUG || STAGE) ? R.xml.app_tracker_debug : R.xml.app_tracker;
                googleAnalTracker = googleAnalytics.newTracker(i);
                googleAnalTracker.enableAutoActivityTracking(false);
            }
            tracker = googleAnalTracker;
        }
        return tracker;
    }

    Тайна гугла раскрыта

    m0003r, 04 Февраля 2018

    Комментарии (9)
  8. Java / Говнокод #23703

    +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
    решение:
    class Twofer {
        String twofer(String name) {
            if (name.equalsIgnoreCase("Alice")){
                return "One for Alice, one for me.";
            } else if (name.equalsIgnoreCase("Bob")) {
                return "One for Bob, one for me.";
            } else {
                return "One for you, one for me.";
            }
        }
    }
    
    
    чтобы эти тесты проходили

    задачка:
    # Two Fer

    `Two-fer` or `2-fer` is short for two for one. One for you and one for me.

    ```text
    "One for X, one for me."
    ```

    When X is a name or "you".

    If the given name is "Alice", the result should be "One for Alice, one for me."
    If no name is given, the result should be "One for you, one for me."


    чувак решил не заморачиваться...

    Lure Of Chaos, 03 Февраля 2018

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

    +1

    1. 1
    OrderedDict().fromkeys(['key1', 'key2', 'key3'], [])

    Снова сел на грабли с изменяемыми объектами

    syoma, 29 Января 2018

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

    +1

    1. 1
    https://habrahabr.ru/post/347688/

    Ученые выяснили, что плюсы медленнее си.

    g0cTb, 28 Января 2018

    Комментарии (32)
  11. C++ / Говнокод #23666

    +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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    template < typename T >
    T shit (void)
    {
      return 0;
    }
    
    int main()
    {
      int crap = shit();
    // Почему дедукция аргумента шаблона в данном случае не работает?
      return crap;
    }
    
    //-------------------------------------
    
    int shit (void)
    {
      return 0;
    }
    
    // Почему functions that differ only in their return type cannot be overloaded 
    double shit (void)
    {
      return 0;
    }
    
    int main()
    {
      int crap = shit();
      return crap;
    }

    Почему плюсы такое говно?

    j123123, 22 Января 2018

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