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

    +167

    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
    function suka($str){
    
    $length = strlen($str);
    for($i=1; $i<=$length; $i++){
    
    $b = (-1)*$i;
    $substrl .= substr($str, $b, 1);
                  }
    
    echo $substrl;
    
    }
    $govno='jizni';
    suka($govno);

    Попросил соискателя написать функцию, которая перевернет строку. Просто хотелось посмотреть подход к коду.

    Запостил: zorbis, 23 Августа 2010

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

    • извращение. Хотя имена радуют
      Ответить
    • подход к коду отражается в названии переменных :)
      Ответить
      • наверное разработчикам php функции "strrev" нужно было сначала спросить мнение автора этого кода... :)
        Ответить
        • Ну, я предупредил парня, что strrev не канает. Хотя вообще-то я был бы гораздо больше рад, если б мне на такое задание сразу говорили "А зачем писать такую функцию, если есть strrev()?", но такое очень редко.
          Ответить
          • В следующий раз, возьми первый попавшийся код с сайта govnokod.ru и попроси соискателя его оптимизировать.
            Ответить
    • Не берите его на работу. Он депрессивный. Повесится еще у вас там
      Ответить
    • suka($nah)

      А код искромётный, кстати...
      Ответить
      • нормальный код.
        Ответить
        • нормальный (c меньшим запахом) код был бы таким:
          for($i=strlen($str)-1;$i>=0;$i--) echo $str[$i];

          и даже тут возможны более изящные варианты

          в общем, такое уже обсуждалось, поэтому - КО
          Ответить
        • Ну, если задание выполнялось без мана, то на балл выше за знание хитрожопых параметров substr(), иначе ссанные тряпки за неумение работать со строками
          Ответить
          • Неа, доступ к манам был, так что тут просто фейл.
            Ответить
          • так задание было написать функцию, которая перевернет строку.
            А strrev - уже написана... создателями PHP.
            Ответить
      • хотя переменную b можно было уменьшать прямо в for
        Ответить
        • можно было бы вообще без нее обойтись
          Ответить
        • Я каждый раз даю это задание, когда человека в команду принимаю. Причем очень редко функции повторяются, обычно у всех по-разному. Так что вариантов решения тут более чем очень много.
          Ответить
          • reverse str
            вот и все
            любители тонны великов городить
            Ответить
            • Велосипедом это было бы, если б я просил в реальном проекте использовать свою функцию вместо strrev(). А тут это задание исключительно теоретическое.
              Ответить
              • >исключительно теоретическое.
                вот и гонял бы по теории
                Ответить
                • Можно сколько угодно слушать "я изучаю пхп уже полтора года, я пишу очень круто и знаю ооп", а на деле получается вот такой вот код, как я в начале выложил.
                  Ответить
                  • >"я изучаю пхп уже полтора года, я пишу очень круто и знаю ооп"

                    и тут хуяк и задаешь вопрос, например:
                    - а покажи свои опенсорс разработки. как нет? фуу ламир
                    - а на смолтоке прогал, ооп-знахарь?
                    Ответить
                    • Вы будете смеятcя, но большинство знахарей ООП от PHP заканчиваются на просьбе написать синглтон))

                      я реально таких видел
                      Ответить
                    • К сожалению, проекты с которыми я сталкиваюсь не нуждаются в специалистах, способных похвастать опенсорс опытом и смоллтоком. Так что приходится спрашивать только знания, которые могут реально понадобится.
                      Ответить
                      • гостевушки ? =)
                        Ответить
                        • А гостевушки знаете какие крутые бывают? Похлеще этих ваших гуглов
                          Ответить
                        • Скорее всего в этих проектах такое, что человек с опытом смоллтока сразу же умрет. Потом их туда пускать нельзя.
                          Ответить
    • плюсую только за названия.
      Ответить
    • #!/usr/bin/perl
      
      print join '', reverse split //, 'abcdef';
      Ответить
    • function flip($s) {
      	$n = strlen($s);
      	return ($n < 2) ? $s :
      	$s{$n-1}.flip(substr($s,1,$n-2)).$s{0};
      }
      
      print flip("abcdef")."\n";
      Ответить
    • function reverse_string($str) {
      return implode('', array_reverse(str_split($str)));
      }

      strrev() рулит.=)
      Ответить
    • о как, простая (и редкоиспользуемая) функция задела всех за живое... даже перл вспомнили
      Ответить
      • >даже перл
        ты так говоришь, как будто перл это что-то плохое =)
        во времена перла хотя не было этой хуиты:
        Встречайте новый язык программирования — Sifflet 1.0
        
        Первая версия визуального функционального языка программирования Sifflet отныне доступна на hackage.
        
        Назначение этого языка — помочь студентам познать рекурсию.
        
        !!Программирование функций в этом языке сводится к черчению в визуальном редакторе диаграмм!!

        http://www.linux.org.ru/news/opensource/5247329
        Ответить
        • > ты так говоришь, как будто перл это что-то плохое =)
          нет, тебе показалось
          перл - отличный скриптовый язык, идеален для написания коммандных скриптов
          и отлично подходит для обработки строк
          впрочем, не слишком приспособлен для веба

          а хуиты хватало во все времена, разве что со временем ее стало еще больше
          даже грустно, что на качество и удобство, как правило, не ориентируются, а на всякие "ах-ох" рюшечки вкупе с "one-button-click" юзеринтерфейсом
          Ответить
          • Благодарю всех знатоков перла за плодотворное участие в дискуссии.
            Ответить
        • Рекурсию надо познавать графикой турбопаскалем, например, нарисовать n-угольник, в котором еще k таких-же n-угольников
          Ответить
          • и так до вырождения угольников в точку... кстати, должен получиться симпатичный узор
            Ответить
            • Да, фракталы порой могут быть симпатичны.)

              "вырождения угольников в точку" не совсем фрактал правда, но все же, идея та же.
              Ответить
    • А нахуя?
      Ответить

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