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

    +2

    1. 1
    2. 2
    3. 3
    if(!$var1 = $var2){
        $var1 = /*запрос из базы*/;    
    }

    Не понял что это.

    Запостил: Sentoki, 04 Марта 2016

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

    • if($var2)
          $var1 = $var2;
      else
          $var1 = /*запрос из базы*/;
      Ответить
    • Я пользуюсь ужасным языком. Хорошо, что я решил выкинуть PHP из своей деятельности
      Ответить
      • че подобрал?
        Ответить
        • Эрланг учу. Пока просто так
          Ответить
          • > Эрланг
            брось бяку
            Ответить
            • Зачем? Язык мне нравится. C++ я вообще перестал понимать с тех пор, как пощупал его лет 10 назад. За это время куча всего в нем и для него появилось. Я не осилю. Ява с C# требуют для каждой мелкой фиговины классами пользоваться. А циклы и ветвления после рекурсии и паттерн-матчинга кажутся очень неудобными.
              Ответить
              • J учи, пес. И хаскелль И меня потом научишь
                Ответить
              • эрланг это ж динамическая питушня
                и он как бы подталкивает к идиотским решениям и невменяемой архитектуре
                и чем опытнее эрлангист, тем больший пиздец он творит
                в последнее время приходится копаться в реализации Diameter в OTP, там просто один сплошной ультракластерфак
                Ответить
    • Лучше выкидывать из коллектива разработчиков которые не согласны что явное лучше не явного и что читаемость важна
      Ответить
    • А что вам было непонятно? Очень банальный код же.
      Ответить
      • А теперь поговорим об анальном коде.
        Ответить
      • Не понятно, зачем когда есть выбор между большей и меньшей читаемостью делать выбор в пользу худшей читаемости.
        Ответить
        • показать все, что скрытоЕсли для вас подобная конструкция плохо читаемая, то вероятно из проекта следует выкинуть именно вас, как профнепригодного.
          Ответить
          • Дай угадаю, фрилансер одиночка, читающий только свой код.
            Ответить
    • Если перед хорошим разработчиком поставить задачу: надо чтобы переменная $var1 принимало значение $var2, если $var2 == true и значение из базы в противном случае, то ожидаемое решение:

      $var1 = $var2 ?: /*запрос из базы*/;


      но ни как не:

      if(!$var1 = $var2){
          $var1 = /*запрос из базы*/;    
      }


      Maintainer не должен пропускать такой код. Тут явно поработал ниндзя-адепт аля http://learn.javascript.ru/write-unmain-code
      Ответить
      • $var1 = $var2 ?: /*запрос из базы*/;
        Не-не-не, Девид Блейн... Не надо нам твоей уличной магии с тернарниками...

        $var1 = $var2;
        if (!$var1) {
            $var1 = /* запрос из базы */
        }
        Потому что хуй знает, на сколько строк этот "запрос из базы" разрастётся завтра...
        Ответить

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