1. Java / Говнокод #2201

    +71.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
    //это метод
    public Integer getNoDeletedSubscribers() {
            Integer count = 0;
            for (int i = 0, n = subscribers.size(); i < n; count += (!subscribers.get(i++).isDeleted() ? 1 : 0));
            return count;
        }
    
    //а вот  пример использования этого  метода в коде))
    private void actionValidateInput() {
            saveTaskBtn.setEnabled(!(((taskName.getText().equals("") ||
                                     subscriberBox.getSelectedItem()==null ||
                                     f51Box.getSelectedItem()==null || getTask().getNoDeletedSubscribers()==0  ) && getTask().getTaskType()==TaskType.SEND_MAIL) ||
                                     ((taskName.getText().equals("") && getTask().getTaskType()==TaskType.RECIVE_MAIL))));
        }

    кусочек мазгоразрывающей логики

    Запостил: nicolas.patsevich, 01 Декабря 2009

    Комментарии (11) RSS

    • хотя в целом очень даже симпатично)
      Ответить
      • Вовсе и не симпатично. taskName.getText().equals("") одно чего стоит. Эти методы не разные люди писали?
        Ответить
      • С точки зрения читаемости метод getNoDeletedSubscribers, конечно не очень хорош. Но он точно на гавнокод(tm) не тянет.
        Ответить
        • Да он то как раз нормальный. вот второй...
          Ответить
          • Да я и сказал на него что симпатично.
            в комментарии ко второму методу надо было написать

            //а вот пример использования этого метода в говнокоде))
            Ответить
        • Ну вообще, что считать говнокодом. Определение такавоха я не видал на сайте Ы
          По мне дык и 1 метод гавнокод, бо раком написан и делает лишние действия.
          И вообще метод еквивалентен следующему, что говорит что он скорее всего не пашет.

          public Integer getNoDeletedSubscribers() {
          if (subscribers.size() > 0) {
          return (!subscribers.get(0).isDeleted() ? 1 : 0);
          }
          }

          Исходя из чего следут что метод тупо проверяет 1ого сабскрайбера.
          Вследствие чего, если сабскрайбер (колекшин скорее всего) имел всего 1 обжект внутри себя, то всё ок, и афтор был счастлив, что метод работал. :D

          Но судя по названию тоже куита, бо предпалагается subscriberS, т.е. многа, а в результате Integer :)

          Гавнокод 100%!! :D
          Ответить
          • упс, пролядел ";" в конце фора :)) сцуко!! :) ганокод Ы
            Ответить
            • так вот и потом рефакториш, и куй работает :D интусы нах Ы
              Ответить
              • Guest ты написал какую то куйню
                public Integer getNoDeletedSubscribers() {
                if (subscribers.size() > 0) {
                return (!subscribers.get(0).isDeleted() ? 1 : 0);
                }
                }

                вот это точно говнокод
                Ответить
                • сама дура :D
                  я отписал позжей :) что просмотрел ";" в конце фора, а та куйня это аналог, если бы после фора не стояла ";".

                  всё генитальнае проста! Ы
                  Ответить
                  • вот ты умник guest;
                    Метод работает и правильно, единственное что без аннотации выдается warning;

                    а ";" там как раз необходима.
                    иди синтаксис подучи.

                    @SuppressWarnings("empty-statement")
                    public Integer getNoDeletedSubscribers() {
                    Integer count = 0;
                    for (int i = 0, n = subscribers.size(); i < n; count += (!subscribers.get(i++).isDeleted() ? 1 : 0));
                    return count;
                    }
                    Ответить

    Добавить комментарий