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

    +79.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ((su != null) & (!su.getId().equals(id))) {
                    flag = false;
     } else if ((su != null) & (su.getId().equals(id))) {
                    flag = true;//true- not exist
     } else {
                    flag = true;
     }

    не пишите код по ночам... а то такое выходит..))

    Запостил: maki, 24 Ноября 2009

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

    • особенно доставил комент
      //true- not exist
      Ответить
    • NullPointer на NullPointer'е
      Зачот.
      Ответить
    • я бы написал так:
      flag = true;
      if(su)
           flag = su.getId().equals(id);
      Ответить
      • Длинно, уродливо смотрится.
        flag = !su || su.getId().equals(id);
        Ответить
        • а где указано. что su - boolean?
          Ответить
          • Виноват.
            flag = (su == null) || su.getId().equals(id);
            Ответить
            • Честно говоря, за такой код, как руководитель проекта, вставил бы "пистон". Корректен, да. Но его трудночитаемость сводит на нет возможную элегантность решения. Не желаю никому разбираться в коде, пестрящим подобными однострочниками.
              Ответить
              • Это трудночитаемо?! Дааа...
                Ответить
                • Алсо, если su==null то не факт что не будет проверенно второе условие
                  А если оно будет проверено, то фейл
                  Ответить
                  • А что, где-то ещё используется полная булева проверка?
                    Кстати, если su.getId().equals(id) делает какую-то операцию ещё, то в исходном говнокоде она делается дважды для ненулевого su, а у нас только по одному разу.
                    Ответить
                  • || - второе условие не будет проверено. факт. rtfm
                    Ответить
                    • +1
                      Ответить
                    • А вот и никуя :) по дефолту мб и не проверит, но не факт.
                      Если выставить опцию у жавы, чтобы делала полные проверки, то будет куй :) 100% :) Ы

                      Учите аспуку :D

                      Но конечно полную проверку бесмыслено ставить, и никто не ставит :) но я ваще пишу к тому, что это не "факт", и не надо тарапицо с вывадами :) Ы
                      Ответить
                      • по-умолчанию полные проверки в Java отключены, и это указано в спеке ) так что их включение является скорее исключением, чем правилом, и это является отклонением от стандарта.
                        Ответить
            • Неплохо, но su.getId() тоже может null вернуть. В apache lib для этих случаев есть ObjectUtils.equals
              Ответить
    • Есть мнение, что самое большое говно в этом коде - наличие флага flag.
      Там тремя строками ниже будет что-то вроде:

      if (flag) {
      flag1 = true;
      } else {
      flag1 = false;
      }

      [КС]
      Ответить
      • Пипец. А не легче сделать flag1 = flag;
        воистину кладезь говнокода
        Ответить
      • ну просто гениально....)
        Ответить
    • пишу код ночами, ничего такого не бывает

      мозги надо иметь
      Ответить

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