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

    +83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static boolean getIsDeclinedByRules(boolean oldIsSatisfy, boolean oldIsDeclined, boolean newIsSatisfy) {
        if (!oldIsSatisfy &&  oldIsDeclined && !newIsSatisfy) return true;
        if (!oldIsSatisfy &&  oldIsDeclined &&  newIsSatisfy) return false;
        if (!oldIsSatisfy && !oldIsDeclined && !newIsSatisfy) return true;
        if (!oldIsSatisfy && !oldIsDeclined &&  newIsSatisfy) return false;
        if ( oldIsSatisfy &&  oldIsDeclined && !newIsSatisfy) return true;
        if ( oldIsSatisfy &&  oldIsDeclined &&  newIsSatisfy) return true;
        if ( oldIsSatisfy && !oldIsDeclined && !newIsSatisfy) return true;
        if ( oldIsSatisfy && !oldIsDeclined &&  newIsSatisfy) return false;
        return true;
      }

    Запостил: glprizes, 25 Марта 2013

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

    • Вот если бы входных булеанов было штук 6, автор этого кода одумался бы, набирая x-десятую строку такого говнеца
      Ответить
      • Вы просто не общались с чем-нибудь, типа моего бывшего отдела R&D - вот там - настоящий взрыв мозга, и только такие простыни и спасают.
        Ответить
        • Если перед этим не провести упрощение блок-схемы - то да.
          Ответить
          • Ага. Только смотришь на ту схему, и получается именно такой костыль ;)
            А пользователям со всем этим ещё как-то жить надо...
            Ответить
      • Не одумался. Инфа 90%.
        Существуют совсем неизлечимые поциенты. Только лоботомия, только хардкор.
        Ответить
      • http://govnokod.ru/11936

        Специально обученный программист на 6 похожих кнопок навесил 6 отдельных функций.
        Ответить
    • return !newIsSatisfy || oldIsSatisfy && oldIsDeclined;

      Вроде как, не?
      Ответить
      • Да! http://ideone.com/9o85yR
        Ответить
      • Случай, когда ни один из if'ов не отработал не учтен
        Ответить
        • Ну это уже к Хейзенбергу тогда... мне кажется, что Гослинг в таком случае окажется не у дел.
          Ответить
    • Таблица истинности прям.
      Ответить
    • У меня есть такое но оформлено чуть иначе, поэтму логарифм вместо эн!
      function GetTrumDir: TDir;
      begin
        with TrumAttr do begin
          if ModelReversed then begin
            if Head then begin
              if Tail then Result := dHTR
                      else Result := dHR;
            end else begin
              if Tail then Result := dTR
                      else Result := dMR;
            end;
          end else begin         
            if Head then begin
              if Tail then Result := dHTD
                      else Result := dHD;
            end else begin
              if Tail then Result := dTD
                      else Result := dMD;
            end;
          end;
        end;
      end;
      Ответить
      • у тебя 8 разных результатов - совсем другое
        собсно, можно за O(1)
        Ответить

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