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

    Всего: 13

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

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public void testGetClosedStatuses() {
        List<FooStatus> expectedStatuses = Arrays.asList(
                FooStatus.CANCELLED,
                FooStatus.COMPLETED,
                FooStatus.REJECTED);
    
        List<FooStatus> closedStatuses = fooService.getClosedStatuses();
    
        assertThat(closedStatuses, containsInAnyOrder(expectedStatuses.toArray());
    }

    Берём массив и преобразуем его в список. Чтобы использовать этот список, преобразуем его в массив.

    wissenstein, 06 Декабря 2018

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    final Optional<Customer> customer = Optional.ofNullable(customerId)
        .map(custId -> customerService.getById(custId)
                .map(cust -> Optional.of(cust))
                .orElseThrow(() -> new NoSuchCustomerException(custId)))
        .orElse(Optional.empty());

    Попытка функционального программирования, когда в язык добавили монаду Optional, но не добавили монаду Try.

    wissenstein, 07 Сентября 2018

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

    −45

    1. 1
    2. 2
    3. 3
    if (!allowed.equals(Boolean.FALSE)) {
        return allowed;
    }

    wissenstein, 09 Сентября 2016

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

    +136

    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
    private AseConnection con;
    
    public void CloseConnection()
    {
        if (this.con != null && this.con.State == ConnectionState.Open)
        {
            CloseConnection(this.con);
        }
    }
    
    public void CloseConnection(AseConnection con)
    {
        if (con == null)
            return;
    
        if (con.State == ConnectionState.Closed)
            return;
    
        con.Close();
    }

    А кому ещё враппэровъ? У меня много ихъ!

    wissenstein, 18 Февраля 2014

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

    +133

    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
    for (int idx = 0; idx < response.Length; ++idx)
    {
        try
        {
            if (getDetails(username, password, summaryList[idx].summaryId).productId[0].id != productId)
            {
            }
        }
        catch (NullReferenceException)
        {
        }
        catch (System.ArgumentException)
        {
            response[idx] = new DetailInfo();
        }
    }

    Если вы меня понимаете, .

    wissenstein, 11 Февраля 2014

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

    +136

    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
    public int GetModuleId(int userId)
    {
        return moduleIdGet(userId);
    }
    
    protected int moduleIdGet(int userId)
    {
        int moduleId;
        // calculate moduleId
        // ...
    
        return moduleId;
    }

    Дал открытый доступ, но в то же время как бы сохранил защищённый.

    wissenstein, 29 Января 2014

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

    +74

    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
    if (myTransactions
            .get(i)
            .getTransactionType()
            .name()
            .compareToIgnoreCase(
                    com.mycompany.myproject.common.TransactionType.ENTER
                            .name()) == 0
            || myTransactions
                    .get(i)
                    .getTransactionType()
                    .name()
                    .compareToIgnoreCase(
                                com.mycompany.myproject.common.TransactionType.ENTER_AGAIN
                                        .name()) == 0) {
    
        BigDecimal fee = myTransactions.get(i).
                .getAmount().subtract(
                        myTransactions.get(i)
                                .getContribution());
    // ...
    }
    
    // Notes by Wissenstein
    //
    // package com.mycompany.myproject.common;
    // public enum TransactionType {
    //     ENTER, ENTER_AGAIN, GET, GIVE
    // }
    // ...
    // public class Transaction {
    // ...
    //     public TransactionType getTransactionType() {
    // ...
    //     }
    // }
    // ...
    // List<Transaction> myTransactions;
    // ...
    // P.S. Идентификаторы изменены.

    К тому, что myTransactions.get(i) повторяется, я уже привык и рефакторю это одним махом.
    Однако использованный здесь метод сравнения значений типа enum меня озадачил…

    wissenstein, 23 Января 2014

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

    +70

    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
    // there is class PlayerExt, which extends class Player...
    // min >= 0
    // max <= players.size()
    
        List<PlayerExt> players = playerManager.getPlayers(contestId);
        Player[] response = new Player[players.size()];
    
        for (int i = min; i < max; i++) {
            response[i] = players.get(i);
            if (!players.get(i).isQualified()) {
                response[i].setChipStack(BigDecimal.valueOf(-1));
            }
            response[i].setPosition(i + 1);
            response[i].setCustomerId(players.get(i).getCustomerId());
        }

    Для таких начальных условий, как обозначено в комментарии в начале кода, формируем список игроков.
    Особенно вдохновляет самая последняя инструкция в теле цикла.

    wissenstein, 09 Октября 2013

    Комментарии (15)
  10. Java / Говнокод #12589

    +81

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    public static void trustAllHttpsCertificates() {
        // Is the deprecated protocol setted?
        if (isDeprecatedSSLProtocol()) {
            __trustAllHttpsCertificates();
        } else {
            _trustAllHttpsCertificates();
        } // else
    } // trustAllHttpsCertificates

    Captain Obvious поучаствовал?
    P.S. Похоже, это писал старый программист, закалённый в борьбе с VisualBasic.

    wissenstein, 14 Февраля 2013

    Комментарии (11)
  11. VisualBasic / Говнокод #12393

    −110

    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
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    Sub WriteCategories(number, choice)
        
        strSql = ""
        strSql2 = ""
        
        If number = 1 Then
            strSql = "SELECT name, category_type_id" '... the rest is skipped
        Elseif number = 2 Or number = 3 Then
            strSql = "SELECT goco.category_order, goco.category_type_id," '... the rest is skipped
        End If
        
        If number = 1 And choice = 1 Then
            strSql2 = "SELECT gosct.category_type_id, goct.operator_id," '... the rest is skipped
            
        Set RS2 = db.Execute(strSql2)
            
        ' --- No sub categories are displayed if choice = 3
        Elseif choice <> 3 Then
            strSql2 = "SELECT goco.category_type_id, goco.sub_category_order, ..." 'the rest is skipped
            
            Set RS2 = db.Execute(strSql2)
        End If
        
        Set RS = db.Execute(strSql)
        
        ' --- CategoryListCurrent should not display selected category in categoryListMoveTo and vice versa.
        If number = 2 And choice = 1 Then
            '... the real code is skipped
            
            Do Until RS.EOF
                '... the real code is skipped
            Loop
        End If
        
        If number = 2 And choice = 2 Then
            '... the real code is skipped
            
            Do Until RS.EOF
                '... the real code is skipped
            Loop
        End If
        
        
        ' --- Loop through the recordset and print categories and sub categories.
        Do Until RS.EOF
            '... the real code is skipped
            
            If number = 2 And choice = 1 Then
                '... the real code is skipped
            End If
    
            If number = 2 And choice = 2 Then
                '... the real code is skipped
            End If
            
            If number = 3 And choice = 3 And subConfigCatId <> -1 Then
                '... the real code is skipped
            End If
            
            ' --- Print main categories
            Response.Write ("<option style=""color:"& color &""" value=""" & RS("category_type_id") & "_0"" " & tempSel & " " & disabled & ">" & RS("name") &  "</option>" &vbCrLf)
            
            If choice <> 3 Then
                ' --- Print sub categories
                RS2.MoveFirst
                If Not RS2.EOF Then
                    Do Until RS2.EOF
                        '... the real code is skipped
                        
                        If catId1 <> -1 And number = 2 And choice = 1 And subCatId1 > 0 Then
                            '... the real code is skipped
                        End If
                        
                        If catId2 <> -1 And number = 2 And choice = 2 And subCatId2 > 0 Then
                            '... the real code is skipped
                        End If
                        
                        ' --- Only print sub categories under a matching category
                        If CLng(RS2("category_type_id")) = CLng(RS("category_type_id")) Then
                            Response.Write ("<option value=""" & RS2("category_type_id") & "_" & RS2("sub_category_type_id") & """ " & tempSelSub & ">  - " & RS2("name") &  "</option>" &vbCrLf)
                        End If
                        RS2.MoveNext
                    Loop
                End If
            End If
            
            '... the real code is skipped
        Loop
    End Sub

    Один параметр числовой. Назовём его number (C) Captain Obvious.
    Второй параметр тоже числовой. Но так как имя number занято, назовём его choice.
    Именованные константы?.. Анти-паттерн «Spaghetti Code»? Не, не слышал…

    wissenstein, 06 Января 2013

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