1. Список говнокодов пользователя imihajlov

    Всего: 4

  2. Java / Говнокод #19096

    −43

    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
    60. 60
    61. 61
    62. 62
    private static int getGroup(Map<String, Object> arg) {
        int group;
        Boolean in_range, known, configured;
    
        in_range = (Boolean)arg.get("in_range");
        known = (Boolean)arg.get("known");
        configured = (Boolean)arg.get("configured");
    
        if (null == in_range || null == known || null == configured)
            return 4;
    
        if (in_range && known && configured) {
            group = 0;
        } else if (!in_range && known) {
            group = 1;
        } else if (in_range && known && !configured) {
            group = 2;
        } else if (in_range && !known && configured) {
            group = 3;
        } else {
            group = 4;
        }
    
        return group;
    }
    
    /* Спустя 150 строк, внутри какого-то метода: */
    
    switch(MyComparator.getGroup(map)) {
        case 0:
            (view.findViewById(R.id.imageButtonControl)).setVisibility(View.VISIBLE);
            (view.findViewById(R.id.imageButtonDelete)).setVisibility(View.VISIBLE);
            (view.findViewById(R.id.imageButtonSettings)).setVisibility(View.VISIBLE);
            (view.findViewById(R.id.imageButtonAdd)).setVisibility(View.GONE);
            break;
        case 1:
            (view.findViewById(R.id.imageButtonControl)).setVisibility(View.VISIBLE);
            (view.findViewById(R.id.imageButtonDelete)).setVisibility(View.VISIBLE);
            (view.findViewById(R.id.imageButtonSettings)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonAdd)).setVisibility(View.GONE);
            break;
        case 2:
            (view.findViewById(R.id.imageButtonControl)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonDelete)).setVisibility(View.VISIBLE);
            (view.findViewById(R.id.imageButtonSettings)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonAdd)).setVisibility(View.VISIBLE);
            break;
        case 3:
            (view.findViewById(R.id.imageButtonControl)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonDelete)).setVisibility(View.VISIBLE);
            (view.findViewById(R.id.imageButtonSettings)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonAdd)).setVisibility(View.VISIBLE);
            break;
        case 4:
            (view.findViewById(R.id.imageButtonControl)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonDelete)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonSettings)).setVisibility(View.GONE);
            (view.findViewById(R.id.imageButtonAdd)).setVisibility(View.VISIBLE);
            break;
        default:
            break;
    }

    Вот вам забористый говнокод от профессианальных андроид-разработчиков.

    imihajlov, 27 Ноября 2015

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

    +2

    1. 1
    Как избавиться от говнокода?

    Вот есть большой проект в большой корпорации. Ты приходишь и видишь, что архитектура говно, комментариев нет, стиль кода различается в разных частях одного файла, да и в остальных мелочах полный говнокод.
    С другой стороны, нужно добавить много разных фич и пофиксить баги, все программисты и ты тоже активно заняты этим, вы приделываете новые костыли и заплатки.

    Как с этим бороться? Убеждать менеджера, что вам нужно несколько недель, а то и месяцев на полный рефакторинг всего? Заниматься этим в свободное время? Забить и говнокодить дальше? Уйти в другое место (не факт ведь, что там будет лучше)?

    imihajlov, 12 Ноября 2015

    Комментарии (113)
  4. Java / Говнокод #18901

    −40

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    -            mContext.unregisterReceiver(mReceiver);
    +            try {
    +                mContext.unregisterReceiver(mReceiver);
    +            }
    +            catch (IllegalArgumentException e) {
    +            }

    Приложение падало при определенных сценариях, пофиксили.

    imihajlov, 21 Октября 2015

    Комментарии (12)
  5. Perl / Говнокод #18877

    −42

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    use v5.12;
    sub unimplemented { ... }
    eval { unimplemented() };
    if ($@ =~ /^Unimplemented at /) {
        say "I found an ellipsis!";
    }

    Навеяно комментарием http://govnokod.ru/18873#comment300760

    Пример из документации перла (http://perldoc.perl.org/perlsyn.html#The-Ellipsis-Statement):
    When Perl 5.12 or later encounters an ellipsis statement, it parses this without error, but if and when you should actually try to execute it, Perl throws an exception with the text Unimplemented.

    Вот такая вот обработка исключений через =~

    imihajlov, 16 Октября 2015

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