1. PHP / Говнокод #17727

    +157

    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
    <?php
    class smth {
        protected static $MARK_UNDEFINED = 'Undefined';
        protected static $MARK_F  = 'ECTS-F';
        protected static $MARK_FX = 'ECTS-FX';
        protected static $MARK_E  = 'ECTS-E';
        protected static $MARK_D  = 'ECTS-D';
        protected static $MARK_C  = 'ECTS-C';
        protected static $MARK_B  = 'ECTS-B';
        protected static $MARK_A  = 'ECTS-A';
    
        protected function getECTSMark($rate, $current, $examRate)
        {
            $color = self::$MARK_UNDEFINED;
            if ($current > 0) {
                $percent = $rate / $current;
                if ($examRate !== NULL AND $examRate < 22)
                    $color = self::$MARK_FX;
                elseif ($percent < 0.31)
                    $color = self::$MARK_F;
                elseif ($percent < 0.60)
                    $color = self::$MARK_FX;
                elseif ($percent < 0.65)
                    $color = self::$MARK_E;
                elseif ($percent < 0.71)
                    $color = self::$MARK_D;
                elseif ($percent < 0.85)
                    $color = self::$MARK_C;
                elseif ($percent < 0.95)
                    $color = self::$MARK_B;
                else
                    $color = self::$MARK_A;
            }
            return $color;
        }
    }

    Сижу и думаю, как это вообще можно как-то.. отговнокодить? О_о

    Запостил: xamgore, 05 Марта 2015

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

    • >Сижу и думаю, как это вообще можно как-то.. отговнокодить? О_о

      Пыха же.
      Ответить
    • Ну можно в массиве искать. Но, имхо, и так наглядно.
      Ответить
    • Ну разве что код-стайл - самобытное говнецо. Советую ознакомиться, например, с http://pear.php.net/manual/en/standards.php
      Ответить
      • > самобытное говнецо
        Доктор, мне мерещится K&R
        Ответить
        • А причем тут керриган и ритчи? Или вы другое имели в виду?
          Ответить
          • кодинг стайл (а именно расстановка скобок) - K&R
            Ответить
            • Понял, никогда не любил этот стиль. На кой черт строчки экономить, я понимаю это еще в книге бумажной, ради экономии.
              Ответить
    • Так все норм же. Кроме лишней переменной $color

      protected function getECTSMark($rate, $current, $examRate) {
          if ($current <= 0) 
              return self::$MARK_UNDEFINED;
          if ($examRate !== NULL AND $examRate < 22) 
              return self::$MARK_FX;
          return color($rate / $current);
      }
      
      protected function color($percent) {
          if ($percent < 0.31) return self::$MARK_F;
          if ($percent < 0.60) return self::$MARK_FX;
          if ($percent < 0.65) return self::$MARK_E;
          if ($percent < 0.71) return self::$MARK_D;
          if ($percent < 0.85) return self::$MARK_C;
          if ($percent < 0.95) return self::$MARK_B;
          return self::$MARK_A;
      }
      Ответить
    • статичные переменные должны быть константами, а так все терпимо.
      Ответить
      • +1
        Ответить
      • Константы подразумевают открытый доступ, а это уже нежелательное поведение.
        Ответить
        • Переменные подразумевают возможность их изменения, а это уже нежелательное поведение.
          Ответить
          • Тоже верно.
            Ответить
          • Давно доказана тееретическая возможность создания программ не содержащих переменных вообще.
            Но почему-то никто так не пишет *.
            * Кроме 1%, создающих коды без практической полезности.
            Ответить
        • Ну прочтут их, что страшного?
          Ответить
        • > Константы подразумевают открытый доступ
          В PHP приватные константы не завезли?
          Ответить
          • Нет. Ровно как и приватные классы.
            Ответить
            • Да там даже пока нечему давать приватный доступ к классам, неймспейсы пока занимаются простым разделением кода.
              Ответить

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