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

    0

    1. 1
    2. 2
    3. 3
    if (strpos($route, ':') !== false) {
                    $route = str_replace(':any', '([^/]+)', str_replace(':num', '([0-9]+)', str_replace(':all', '(.+)', $route)));
                }

    Очередная обезьяна села высерать свои мысли на PHP ... Уже много говорили тут о mpak и его "cms", вот вам еще одно "чудо": https://github.com/wolfcms/wolfcms

    Запостил: zenn1989, 24 Июня 2016

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

    • https://github.com/zenn1989/ffcms/blob/master/extensions/modules/comments/back.php#L180
      опаньки) слава синглетонам!
      Ответить
      • слава mvc! https://github.com/phpffcms/ffcms/blob/master/Apps/Controller/Admin/Comments.php#L40
        Ответить
        • https://github.com/phpffcms/ffcms/blob/master/Apps/ActiveRecord/App.php#L33
          ну хз, хз.
          возьмем https://github.com/phpffcms/ffcms/blob/master/Loader/Console/index.php
          if (PHP_SAPI !== 'cli' || !defined('root')) {
          die();
          }
          консольную команду я не смогу дернуть из веб-морды если захочется. И вообще константы не нужны. Тестов тоже нет.
          https://github.com/phpffcms/ffcms/blob/master/Loader/Cron/index.php#L43
          тоже хз зачем. почему бы не сделать крон-задачи в связке с консольным компонентом?
          мне лень дальше продолжать, если интересно - пишите
          Ответить
          • Мисье, покажите ваш гит и я вам обязательно напишу, или боитесь?
            Что вам не понравилось в механизме сохранения всех записей в виде ar-объекта в память и используемый там синглтон (он действительно должен иметь единую точку вызова)?
            Какому чудаку может понадобиться исполнять консольную команду из web? Нужно - никто не мешает сделать контрллер-прокси для веба.
            Крон сделан отдельно, аналогично разделению других интерфейсов, но у вас видимо какая-то иная извращенная логика.
            Гит покажите свой, или ссыкотно?
            Ответить
            • нет смысла - я в opensource не вкладываюсь, только коммерческие проекты. Тем более ссылку сами скинули, а там не все так гладко и бросается в глаза даже без детального просмотра
              Ответить
              • Вы думаете я не занимался "коммерческими проектами" и не знаю что за полный п*здец происходит там? Если вы пытаетесь просто найти к чему "д*ебаться" - у более-менее смышленого человека это всегда получится. Посмотрите на сам пост - там не то чтобы синглтон, там не соблюден ни один стандарт разработки, кроме того автор этого кода даже не знает, как работает фу-ия str_replace .... о чем говорить дальше то?
                Ответить
                • по поводу вашего опыта в коммерческой и любой разработке у меня мыслей нет никаких, ибо мне пох. Вы кинули ссылку, я написал комментарий. Ну а исходная ссыка (https://github.com/wolfcms/wolfcms) - да, печалька, но о мертвых либо хорошо, либо ничего)
                  Ответить
                  • Ясно, вы типичный выебщик, уважающий только свой говнокод. Говорить далее с вами о чем либо без пруфа на гитхаб - неочем.
                    Ответить
                    • как раз свой говнокод мне не нравится. увы, все мои самописные cms выкинуты в мусорку, т.к. унылое и, на самом деле, никому не нужное гавно. но это не значит что я не могу сказать автору о неочевидных или странно реализованных моментах.
                      Ответить
                    • справедливости ради отмечу, что у вас - не говнокод, написано внятно и не нужно вдумываться, что это все делает. Но архитектура будет затруднять юнит-тестирование к примеру, и в некоторых моментах придется немного поизвращаться.
                      Но т.к. приложение позиционируется как cms, конечного пользователя это волновать не должно, главное чтоб верстку было удобно и быстро натягивать
                      Ответить
            • про консольные команды - http://symfony.com/doc/current/cookbook/console/command_in_controller.html
              иногда полезная штука - допустим, у вас рассылка стоит по крону и выполняет команду
              /usr/bin/php /path/to/console newsletter
              А потом требования поменялись и нужно приделать кнопку в админку, которая разошлет по Вашему требованию. В итоге не придется менять ничего и выйдет так же удобно
              и да, у меня судя по всему извращенная логика - мне кажется бизнес-логике приложения должно быть пох, кто ее дергает извне
              Ответить
    • я, честно, даже хз, что здесь хуже из ссылок - мертвый пациент (https://github.com/wolfcms/wolfcms/pulse)
      или синглетоны на каждом шагу О_о (пациент тож помер https://github.com/zenn1989/ffcms/pulse)
      Ответить
    • https://github.com/zenn1989/ffcms/blob/master/engine/load/front.php
      Ехал init() через init(), видит init() в реке init(), сунул init() руку в init(), init() init() init() init()
      По сабжу:
      http://www.yegor256.com/2015/12/08/temporal-coupling-between-method-calls.html
      Ответить
      • Какой долбоёб придумал обращение к неймспейсам через обратный слеш?
        Ответить
        • Тот самый, который придумал и всё остальное PHP.
          Ответить
          • > всё остальное PHP.
            Я так и знал, что PHP — среднего рода. Ведь если промахнуться по букве P, получается ОНО. Возможно, создатель когда-то просто промахнулся по букве O, и ему лень было исправлять.
            Ответить
            • > Я так и знал, что говно — среднего рода.
              FTFY
              Ответить
          • Но ведь Расмус Лердорф придумал не всё. И когда за PHP взялись два еврея, неймспейсов в нём ещё не было. Неймспейсы появились только в 5.3 и, кажется, были позаимствованы из так и не вышедшего PHP 6, которым занимались совсем другие люди.

            P.S. Есть подозрение, что к изобретению неймспейсов причастен вот этот человек:
            http://zmievski.org/about/
            Ответить
            • >И когда за PHP взялись два еврея, неймспейсов в нём ещё не было.
              Джва самых уродливых и самых используемых языка-франкенштейна: рнр, и кресты.
              Ответить
              • Нет. Самвй уродливый язык это пхп, потом додго никого нет, и только после идут кресты
                Ответить
            • > два еврея
              Так это они добавили туда т_памаяим_некодатим?
              Ответить
              • А Вы таки думаете, что Расмус? Не смешите уже мои тапочки.
                Ответить
              • А вы что не в курсе, что Зенд - израильская компания?
                В Израиле вообще много известных говнопрограм написано: ICQ, почти весь Виндовс ХР. Один только Кволити Центр чего стоит.
                Ответить
                • ICQ изобрели в Израиле, а потом кто только ни дорабатывал. После того, как ICQ попала в AOL, там несколько раз сменился протокол, причём обратно несовместимо.
                  Ответить
                  • Ну программисты-то те же самые остались. АОЛ купила всю компанию, не только продукт. Мой сосед по общаге работал в Мирабилис в нулевых. Уволился лет семь назад.
                    У АОЛ вообще большое представительство в Израиле. Тут еще делают какую-то анимированую херню для детей. Техсапорт. Когда еще флешем занимался был у них на собеседовании. Контора с кучей уровней бюрократии, лентяями и абсолютно некомпетентным персоналом.
                    Ответить
                    • господи, Олег, тебе хоть где-нибудь подошла контора, скажи откровенно
                      Ответить
                      • Да ладно, ты не слышал слезливую историю о том, как Олега в тестовом задании попросили реализовать простенький редактор фигур, а он зачем-то нахерачил урезанный Postscript-процессор, после чего его не взяли в AOL, т.к. "не смогли найти исходники"?
                        http://govnokod.ru/17105#comment254479
                        https://github.com/wvxvw/drawpad-assignment/
                        https://github.com/wvxvw/drawpad-assignment/blob/master/spec.pdf
                        Ответить
                        • если честно, мне сложно вести логи за ним
                          мне кажется, если бы в израиле выдавали бы трудовые книжки, то у него уже случилось бы несколько томов

                          > Тетка которая меня должна была собеседовать не смогла скачать исходники из Гитхаба и на этом все закончилось.
                          это грустно
                          но если бы она их даже скачала, она бы там всё равно ничего не поняла
                          Ответить
                        • Постскрипт - не процессор, а интерпретатор.
                          Не понятно - не осилил.
                          Ответить
                        • Даже я нашёл:
                          https://github.com/wvxvw/drawpad-assignment/tree/master/src/tld/wvxvw/drawpad

                          Особенно понравился EventServer.as:
                          public function place(shape:Shape):void {
                                      Console.log("Placing shape");
                                      this.tell("place", [shape]);
                                  }

                          И таких методов на два экрана. Метод tell, кстати, тоже ничего не делает, а только передаёт управление дальше в лучших традициях ООП.

                          Они же просили продемонстрировать владение ООП?
                          Ответить
                          • Лол, этот бессмысленный песдун еще и анусуриптер
                            Ответить
                          • И че?
                            Ответить
                            • Мне нравится. Энтерпрайзненько. Не понимаю, почему солидная компания отвергла, ведь это стиль серьёзного софта.
                              Ответить
                              • Да при чем здесь это? Это нужно исключительно потому что в АС нет overload для функций, но чтобы сохранить более узкий тип создают несколько методов с разными названиями, которые потом делегируют к одному методу с более широким типом.
                                Ответить
                        • Какой багор )))
                          Ответить
                          • Да, wvxvw люто доставлял.
                            Ответить
                            • Да он поехавший. Может быть сейчас уже исправился. Можешь с ним связаться?
                              Ответить
                              • Поехавший разве что в хорошем смысле.

                                wvxvw реально был охуенный. Зачем ему исправляться?

                                Как он ловко слил анскильных лалок, которые не шмагли слить сорцы с гитхаба.
                                Ответить
                        • >попросили реализовать простенький редактор фигур
                          Мало того, он там ещё запилил свои любимые Emacs комбо-кейбиндинги.

                          https://github.com/wvxvw/drawpad-assignment/blob/c7d1dd6ecbcbf96ee10558e2e447902fe3624dcb/src/tld/wvxvw/drawpad/tools/Keymap.as


                          /**
                               * This class behaves similar to Emacs <code>keymap</code>
                               * object. In much the same way it uses traditional Emacs semantics
                               * for key codes. For example, `M-x' is what is more commonly known
                               * in PC world as "meta ex" or <Alt>+x (using typical Windows userguide
                               * style) or Option+x (using Mac userguide style).
                               */
                          Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • Тут всё хуже: он реализовал интерпретатор подмножества «Постскрипта» на «Экшонскрипте».
                            Ответить
                            • Какой адоб )))
                              Ответить
                              • Вот тут реализация стандартных функций «Постскрипта», которые рисуют фигуры на канве:
                                https://github.com/wvxvw/drawpad-assignment/tree/master/src/tld/wvxvw/postscript/ops
                                Ответить
                                • Отведай крылышек из КФЦ. Тебе понравится клевать родню.
                                  Ответить
                      • Да, там где я работаю сейчас меня все устраивает.
                        Ответить
                      • Олег за все берется ловко
                        Все превращается в говно
                        А если за глвно берется
                        То просто тратит меньше сил
                        Ответить
                • Окей, а вто нибудь полезное там изобрели?
                  Ответить
    • Астрологи объявили неделю рнр
      Количество говно-cms увеличено втрое
      Ответить

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