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

    +173

    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
    <?php
    if(date("D") == "Mon"){
        if(date("G")<13){ 
            echo "Мы предполагаем, что ваш заказ будет доставлен во вторник.";
        }else{ 
            echo "Мы предполагаем, что ваш заказ будет доставлен в среду.";
        }
    }elseif(date("D") == "Tue"){
        if(date("G")<13){ 
            echo "Мы предполагаем, что ваш заказ будет доставлен в среду.";
        }else{ 
            echo "Мы предполагаем, что ваш заказ будет доставлен во четверг.";
        }
    }elseif(date("D") == "Wed"){
        if(date("G")<13){ 
            echo "Мы предполагаем, что ваш заказ будет доставлен в четверг.";
        }else{ 
            echo "Мы предполагаем, что ваш заказ будет доставлен в пятницу.";
        }
    }elseif(date("D") == "Thu"){
        if(date("G")<13){
            echo "Мы предполагаем, что ваш заказ будет доставлен в пятницу.";
        }else{ 
            echo "Мы предполагаем, что ваш заказ будет доставлен в субботу.";
        }
    }elseif(date("D") == "Fri"){
        if(date("G")<13){ 
            echo "Мы предполагаем, что ваш заказ будет доставлен в субботу.";
        }else{ 
            echo "Мы предполагаем, что ваш заказ будет доставлен в среду.";
        }
    }else{
        echo "К сожалению, склад интернет-магазина работает только в будние дни, поэтому ваш заказ может быть доставлен во вторник.";
    }
    ?>

    Запостил: ChillyBwoy, 01 Сентября 2010

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

    • > К сожалению, склад интернет-магазина работает только в будние дни, поэтому ваш заказ может быть доставлен во вторник.
      ага, а понедельник - отходной.

      Мы предполагаем, что ваш заказ будет доставлен завтра, а вы все время приходите сегодня = )
      Ответить
    • Во четверг)))))
      Ответить
    • не проще тут switch использовать
      Ответить
      • проще копипастить. для нормального программирования все таки мозги нужны - а их почему то не любят юзять. Больно, наверное
        Ответить
        • Основная масса пхп-программистов их не имеет.
          Ответить
          • Говно кодеры есть везде и на ПХП в процентном соотношении от всех прогеров ПХП не больше чем на других языках. Просто Пхп кодеров больше много больше чем других.
            Ответить
            • Вы не правы. г-на на PHP больше ибо:
              1) php менее требователен: на нем будет работать любое гавно (а джаве например -- нет)
              2) php учит плохому, потому что сам язык и его api это верх кривости
              Ответить
              • > php учит плохому, потому что сам язык и его api это верх кривости
                пример приведете или пусть останется просто брошенной фразой
                Ответить
                • 1) типизация частично-статическая по желанию: у метода можно указывать тип аргумента, но только не для примитива. У переменных указывать тип нельзя. Таким образом программист-новичек не понимает ни утиной типизации (как в питоне) ни статической (как в джаве или .net).
                  2) аутпут ошибок по-умолчанию идет в STDOUT. Программиста не учат вести логи.
                  3) многие переменные глобальны: это учит класть на инкапсуляцию.
                  4) часть API реализована процедурно, часть -- объектно. Это учит новичков мешать два подхода, и в итоге человек не умеет работать ни процедурно (как в чистых сях) ни объектно (как в джаве или .net).
                  5) в синтаксисе нет разницы между ассоциативными массивами и просто массивами, это заставляет новичка думать, что между ними правда нет разницы.
                  6) наличие таких глобальных функций как nl2br и возможность аутпутить прямо в браузер заставляет человека думать что веб -- единственное вью, и потому программы с логикой часто прошиты HTMLем и не юниттестируемы.
                  7) в языке есть эксепшены, но ими никто почти не пользуется. Кто-то пишет ошибку в переменную, кто-то возвращает ее функцией кто-то вызывает warning а кто-то -- эксепшен.

                  Каша из идеологий и парадигим не доводит до добра.
                  Си учит процедруному подходу.
                  Java -- объектно-ориентированному.
                  PHP учит мешать всё в кучу
                  Ответить
                  • 1. Это косяк реализации ООП я использую ООП только когда правлю чужое творчество с использованием ООП считаю что на пыхе оно реализовано так что мараться не хочется язык позволяет использовать парадигму ООП или процедурный подход.
                    2. ИМХО это в 1 очередь и учит с сайтом работают люди и все левый строки очень пугают. любой прогер так или блокирует вывод в браузер разница в том что плохой просто блокирует собаками а хороший перенаправляет все в лог. Писал на Delphi там тоже если не ловить ексепшены они лезут в глаза. Си по моему так же себя ведет.
                    4. Согласен самого бесит
                    5. любом языке именна констант и переменных выглядят одинаково - и что это тоже учит новичка что это одно и тоже. П.С. В пыхе ВСЕ массивы ассоциативные
                    6. Это из -за говно книжек почему то там так учат и только если вдруг повезет наткунутся на норамльную литературу можно понять что это говно. Я тоже так начинал писать. до сих пор стыжусь про MVC узнал много позже и мнится мне 99% пргеров начинали так с опытом начинают понимать что надо по другому.
                    7.Это тоже говно книжки.

                    П.С.
                    Пыха дает все все инструменты для работы каким будешь пользоваться тебе решать.
                    Ответить
                    • >Пыха дает все все инструменты для работы каким будешь пользоваться тебе решать.

                      ну раз он все-все инструменты дает, я решил попользоваться этими:
                      - type inference
                      - currying
                      - pattern matching
                      - higher-order functions
                      - absence side-effects
                      - lazy evaluation
                      но где же они? может я плохо их искал?
                      Ответить
                      • Вместо вступления:
                        Писали бы вы, батенька, на русском языке. Посмотришь - страшные, непонятные слова. А приглядишься - вроде бы и все понятно, а местами - так и совсем глупости.

                        - type interface - тоесть выведение типов - тут действительно не поспорить. динамическая типизация дает о себе знать.

                        - currying - что, как не странно переводится как каррирование - замечательная штука построенная на лямбдах.
                        function curry($x){ 
                        return function ($y) use ($x) { return $x + $y; }; 
                        }


                        красиво - тут http://github.com/Burgestrand/Funcy/blob/master/lib/funcy.php check

                        - pattern matching - шито? как нет? check

                        - higher-order functions - функции высшего порядка. давайте посмотрим определение из этой вашей википедии: "In the untyped lambda calculus, all functions are higher-order" лямбды есть. типизации - нет. check.

                        - absense side-effects - отсутствие побочных эффектов? как напишите так и будет. check

                        - lazy evaluation - ленивые вычисления. местами - есть. логика - ленивая. а вообще ждем пхп 5.4 или 5.5.


                        вопщем мечта а не язык. сиди себе, лабай свои математики.
                        таки шито вам нехватает?
                        Ответить
                        • привыкай к международной терминологии (а то был тут прецедент: процессы потоками называли)

                          >динамическая типизация дает о себе знать.
                          и сразу fail

                          >каррирование - замечательная штука построенная на лямбдах.

                          угу. на частичном применении...
                          ну ладно, привел пример замыкания и уже стало смешно use ($x) - вручную указывать захватываемый контекст - гениальное решение, так я на любом Тьюринг-полном сделать могу (через пять слоев кодогенерации, например). Реквест был на каррирование любой функции. полуfail

                          >pattern matching - шито? как нет?
                          вот так. нет. или приводи контрпример матчинга любой алгебраической структуры данных (ах да, их же тоже нет в пхп - fail).

                          >функции высшего порядка.

                          опять же как и с частичным применением, это все синтетические вещи - эмуляция того, что в других языках сделано как надо и уже есть "из коробки".
                          полуfail

                          >отсутствие побочных эффектов? как напишите так и будет

                          да, я напишу, а гарантию кто даст, что какой-то полуебок не влепит $i++ и прога не навернется? fail

                          > ленивые вычисления. местами - есть.
                          показываем. не стесняемся.
                          превентивный fail

                          >логика - ленивая
                          не надо делать мне смешно, даже в лиспах (напомню, там аппликативный порядок) if - спецформа.
                          Ответить
                          • елси ты скажешь, с чем можно перепутать фвп и остальное - соглашусь.

                            динамическая типизация и ленивые вычисления - да, фейл. но дальше:

                            >> Реквест был на каррирование любой функции
                            Небыло реквеста. Было написано "где они? может я плохо их искал?" и своим постом я как-бы намекаю на то, что да. плохо. тоесть вообще не искал. и гугль не гуглил. и по ссылкам не ходил. потому как есть еще два варианта каррирования. да, все это написано костылями и не сравнится с, но ведь работает же.

                            ты пишешь, что паттерн мачинг зафейлен потому что мы не можем мачить то, чего нет в языке? а разве регекспы не являются одной из имплементаций? чего надо то?

                            фвп - ... синтетические вещи - эмуляция ...
                            и снова. это есть и работает. а ты "плохо искал" и не нашол.

                            из всего вышенаписанного логично следует то, что пхп внезапно стал муьтипарадигменным языком программирования, а у них с сайдефектами получается так: хотим - пишем, не хотим нет.
                            расскажи про язык с защитой от полуебков или фейл незащитан.

                            итого 4 из 6
                            Ответить
                            • >Небыло реквеста
                              он подразумевался.
                              ок, оформлю как положено: покажи частичное применение любой core function

                              >потому как есть еще
                              два варианта каррирования

                              что?? варианты каррирования? я что-то пропустил в computer science или ты не понимаешь значение термина?

                              >паттерн мачинг зафейлен
                              >разве регекспы не являются одной из имплементаций?

                              надеюсь, ты пошутил?
                              Pattern Matching =/= Regex Match

                              про сопоставление с образцом можешь почитать в горячо любимой википедии

                              >фвп это есть и работает

                              то, что в пхп назвали фвп - пародия и не более того. хаки через рефлекшен =\= стандартной функции языка

                              >расскажи про язык с защитой от полуебков или фейл незащитан.

                              любой, где иммутабельность - норма, а не пожелание
                              Ответить
                              • да, частичного применения на коре нет.

                                не вариантов карирования, а вариантов реализации. через замыкания, через массив переменных, через функцию-обертку.

                                про паттерны и регэкспы - да, не одно и то же.

                                про иммутабельность ты хорошо написал. только она не спасает от ошибок в коде и доблестных коллаборационистов. ну напишет он не пост-инкремнт, а лямбду с прирощением. итог то один.

                                а вообще тред начался с "инструментов". получается, что не все, кривенькие и убогие, но есть.
                                Ответить
                                • >вариантов реализации.

                                  эмуляции... но не суть

                                  >про иммутабельность ты хорошо написал. только она не спасает от ошибок в коде и доблестных коллаборационистов.

                                  а мутабельность стало быть спасает?

                                  >ну напишет он не пост-инкремнт, а лямбду с прирощением. итог то один.

                                  это будет уже новая сущность, никаких сайд-эффектов, к тому же кодообезьянка такое случайно не напишет

                                  >а вообще тред начался с "инструментов". получается, что не все, кривенькие и убогие, но есть.

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

                                    вот о чем я и говорю. сначала в пхп были только мягкие стены из стекловаты, а теперь еще и микроскопы с отвертками появились.
                                    Ответить
                                    • >но спич был про "язык с защитой от полуебков"

                                      было бы неплохо, но таких ЯП нет, и речь не про них, а про мутабельную акробатику и непредсказуемое использование сайд-эффектов
                                      Ответить
                          • >>а то был тут прецедент: процессы потоками
                            это потому, что ребенок не знал разницы между потоком и процессом.
                            тут не в терминологии дело. Хотя некоторые вещи и правда лучше не переводить.
                            Ответить
                    • вся беда в том, что пхп
                      1. разрабатывался для простой, одностраничной, обработки форм (помните аббр. "/FI"?) в стиле: "получить данные из формы, обработать данные(в БД), вывести красиво в таблицу"
                      2. был заявлен как самый простой - то есть, кодообезьянка может почитать первую страничку мануала или туториал, и сразу начать кодить
                      3. стартовал на заре веба, когда никто еще всерьез не задумывался ни о шаблонах проектирования, ни о безопасности в вебе - отсюда всякие там register_globals

                      и, конечно, глобальный фейл разработчиков:
                      наклепав пхп в спешке, на коленке, они не захотели учитывать последующий горький опыт, лепя новые фичи в такой же спешке прямо на старые, прикрывая особо позорные места костылями, а потом костылями для костылей и т.д.

                      таким образом, пхп мог бы быть хорошим веб-яп,
                      но нежелание что-то менять коренным образом привело к унылому выводу: пхп в чистом виде остается "бейсиком для веба". Только грамотная инфраструктура (какой нить Zend Framework) может как-то скрасить этот эпикфейл, и за уши притянуть к серьезной веб-разработке - но даже в этом случае "ослиные уши" будут торчать
                      Ответить
                      • >> нежелание что-то менять коренным образом
                        лол

                        а не пойти бы вам почитать историю?
                        1.0 релиз
                        2.0 апгрейд
                        3.0 рерайт
                        4.0 рерайт
                        5.0 большущий рерайт.
                        5.3 - самый смак.

                        что сказать-то хотел?
                        Ответить
                        • а смысел? если говно как лежало, так и не убирали. например, как долго отбрехивались от возможности сделать компилируемыми такие вещи, как f()[0], когда как в том же перле это возможно сразу
                          Ответить
                          • ты делаешь мне смешно.

                            напимер как долго в С++ отбрехивались от возможности ввести лямбды, когда в том же хаскеле это возможно сразу.

                            с++ говно да?
                            Ответить
                        • >>5.3 - самый смак.
                          так а почему разработка пыха дрожит, как у быка яйца?

                          то ввели немспейсы, то выпилили. Ввели кусочек статической типизации (указание типа параметров у функций) но не до конца -- у примитивов не работает. И у свойств объекта не работает.

                          Ввели PDO, но функции типа mysql_ даже не стали депрекейтед.

                          Надо выбрать идеологию и по ней идти: или у тебя типизация динамическая (как в питоне) и все идут лесом, или статическая (как в джаве).

                          Или у тебя ООП везде, или процедурный подход.
                          Ответить
            • количество, которое упорно отказывается перейти в качество, ага
              Ответить

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