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

    +166

    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
    $response = LINQ::from($products->as_array('id'))
                        ->join($images)
                        ->on(function ($from_key, $from_value, $join_key, $join_value){
                            return $from_key === $join_key;
                        })
                        ->select(function($from_key, $from_value, $join_key, $join_value)use($searchStr){
                            $replaceStr = '<span class="badge badge-success">'.$searchStr.'</span>';
                            return array(
                               'title' => str_ireplace($searchStr, $replaceStr, $from_value->title),
                               'href' => '/product/'.$from_value->alias.'.html',
                               'thumb' => '/public/'.$join_value->thumb
                            );
                        })
                        ->result();

    Так бывает когда приверженца C# заставляют писать на PHP. Он обязательно напишет свой аналог LINQ с театром и балеринами, а потом будет ныть о том, что в похапе нет нормальных лямбд.

    Запостил: Strannik1941, 08 Июня 2014

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

    • "Он обязательно напишет свой аналог LINQ с театром и балеринами, а потом будет ныть о том, что в похапе нет нормальных лямбд."

      А у этого цирка есть какое-нибудь научное название? Это как бы не новый эффект и присутствует в почти каждой прикладной области. Неужели еще имени не дали?
      Ответить
      • > А у этого цирка есть какое-нибудь научное название?
        У some->foo()->bar()->baz()? Если да - то, емнип, эта штука называется fluent interface.
        Ответить
        • нет. у цирка когда тулзы меняются (в данном случае язык программирования), а народ пытается на них как на старых работать и глубоко и долго возмущается что нифига не работает.
          Ответить
          • идиотизм?
            Ответить
          • Это как использовать статические буферы в языках с гц. Паттерн присутствует, подтверждаю.
            Ответить
          • Профессиональный программист на фортране может писать на любом языке программирования, как на фортране.
            Ответить
        • это немного больше, что-то вроде query builder
          Ответить
        • есть названия: monad и gonad, пришло, если память не изменяет, из haskell.
          бывает, кстати, и весьма удобно (например конструктор запросов в БД в Yii)
          Ответить
        • Я раньше думал это называется chain method. Спасибо за ответ.

          Как вы думаете, этот fluent interface не вредит читабельности?
          Ответить
          • chain method это когда ты возвращаешь this, а fluent interface - другой обьект. Например LINQ в .NET

            не вредит, и упрощает логику
            Ответить
      • >А у этого цирка есть какое-нибудь научное название?
        Функциональщина головного мозга. Серебрянная пуля 10-х, пришла на смену ООП.
        Ответить
        • Функциональщина как и ооп в кривых руках превращается в охтыжблять навертели.
          Ответить
      • > А у этого цирка есть какое-нибудь научное название?
        Возможно, "инерция мышления"
        Ответить
      • >А у этого цирка есть какое-нибудь научное название?
        Golden Hammer. Заключается в том, что пациент начинает применять свои любимые средства везде. Независимо от задач, которые эти средства решают
        Ответить
        • очень близко! может быть даже и оно. надо помедитировать за пивом на эту тему.

          http://en.wikipedia.org/wiki/Law_of_the_instrument

          The concept known as the law of the instrument, Maslow's hammer, Gavel or a golden hammer is an over-reliance on a familiar tool; as Abraham Maslow said in 1966, "I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail."

          ЗЫ http://deviq.com/golden-hammer
          Ответить
    • А решение на поверхности - не писать на пхп
      Ответить

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