- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
function decode_php_abbr($abbr){
if(strpos($abbr,'PHP')!==false){
$abbr=str_replace('PHP','PHP: Hypertext Preprocessor',$abbr);
decode_php_abbr($abbr);
}
else echo $abbr;
}
decode_php_abbr('PHP');
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+159
function decode_php_abbr($abbr){
if(strpos($abbr,'PHP')!==false){
$abbr=str_replace('PHP','PHP: Hypertext Preprocessor',$abbr);
decode_php_abbr($abbr);
}
else echo $abbr;
}
decode_php_abbr('PHP');
Расшифровываем аббревиатуру PHP или когда на работе немного скучно.
Fike 13.01.2015 15:35 # 0
bormand 13.01.2015 15:42 # −1
VokaMut 13.01.2015 15:45 # 0
roman-kashitsyn 13.01.2015 15:47 # +2
VokaMut 13.01.2015 15:49 # 0
Что бы вывелась всё таки когда расшифруется)
bot 13.01.2015 16:26 # +2
laMer007 13.01.2015 19:36 # +1
inkanus-gray 13.01.2015 20:09 # +1
> Ну там декоратор
http://framework.zend.com/manual/1.12/ru/zend.form.standardDecorators.html
> или фабрику
http://framework.zend.com/manual/1.12/ru/zend.db.adapter.html
http://framework.zend.com/manual/1.12/ru/zend.uri.chapter.html
http://framework.zend.com/manual/1.12/ru/zend.paginator.usage.html
http://framework.zend.com/manual/1.12/ru/zend.navigation.pages.html
bot 13.01.2015 22:33 # +1
Ну понятно, что это, как бы, придаёт плавное скольжение следующим использователям кода... то, сё. Но ведь это такой дирижабль получается. С бассейнами, полями для гольфа и с футбольной командой. Как же они взлетают со всей этой хернёй?
Анонимус 13.01.2015 21:33 # 0
Есть "абстрактная фабрика", а есть "фабричный метод" и это две большие разницы.
bormand 13.01.2015 22:11 # 0
Ой, ну прям большая-большая разница... В одном случае - один метод и, соответственно, один тип создаваемых продуктов, в другом - несколько. В чём там еще отличия то?
Анонимус 13.01.2015 22:22 # 0
Фабричный метод скрывает от нас процесс конструирования объекта выбирая конкретный класс и, возможно, заполняя его нужными параметрами если это нельзя сделать в конструкторе (например нельзя в конструкторе зарегистрировать свежесозданный объект, ибо утекание ссылки будет, а в методе фабричном -- можно)
Абстрактная фабрика же дает нам стратегию создания целого семейства объектов отвязывая нас от конкретной имплементации (хрестоматийный вариант это WidgetFactory со всякими createButton которые вернут KDEButton, GnomeButton итд).
Ну а по большому-то счету все паттерны про одно и тоже)
-----
Боже, какой я ООПдрочер:-/
LispGovno 13.01.2015 22:25 # 0
+++++++++++
в пхп паттерны ненужны. на говнокодят макаки и ладно.
Анонимус 13.01.2015 22:26 # +4
Он сказал что в больших проектах он нужен, а в маленьких, пожалуй нет.
LispGovno 13.01.2015 22:28 # +1
bormand 13.01.2015 22:32 # +9
- И правда... нахуй он нужен то?
- Вы приняты!
LispGovno 13.01.2015 22:36 # +2
Анонимус 13.01.2015 22:39 # 0
Fike 13.01.2015 22:45 # +2
Vasiliy 14.01.2015 14:50 # 0
bot 13.01.2015 22:56 # 0
В любом проекте есть библиотечные функции/методы, которые наследовать бессмысленно и глупо. Конечно, если не аопнутый во всю голову.
bormand 13.01.2015 23:03 # 0
Препроцессор - это одна из самых больших крестопроблем. Именно благодаря ему крестопроекты собираются по полчаса (либо требуют идиотские костыли типа precompiled headers) и могут случайно нарушить ODR. По сравнению с ним синглтоны - безобидные пушистые мышки.
bormand 13.01.2015 23:10 # 0
Наследование нинужно. Да и никакого наследования не существует. Это всего лишь... удобный сахарок для агрегации и форвардинга.
bormand 13.01.2015 23:26 # +1
bot 13.01.2015 23:36 # 0
bormand 13.01.2015 23:57 # +1
LispGovno 14.01.2015 00:01 # 0
bormand 14.01.2015 00:21 # +2
Stallman 14.01.2015 00:33 # 0
LispGovno 14.01.2015 01:14 # +1
> Yuyushki
а я уж подумал борманд матом ругается и вообще охренел. А в итоге оказалось мои мысли выдают мою испорченность
bormand 14.01.2015 01:24 # 0
Stallman 14.01.2015 01:33 # 0
Ты хоть представляешь, что теперь миллионы поливаноблядей готовы сделать с твоим грешным телом?
bormand 14.01.2015 06:20 # 0
LispGovno 16.01.2015 01:09 # 0
сх?
1024-- 16.01.2015 16:01 # 0
bormand 16.01.2015 16:05 # 0
ゆゆ式 Перевод у гуглотранслейта суровый...
1024-- 16.01.2015 16:08 # +2
inkanus-gray 16.01.2015 16:13 # 0
guest 16.01.2015 16:17 # 0
inkanus-gray 16.01.2015 16:21 # 0
roman-kashitsyn 14.01.2015 01:15 # 0
> Он сказал что в больших проектах он нужен, а в маленьких, пожалуй нет.
а вдруг он ретроград, не расслышал и подумал "зачем нужен Monotone?"
Stallman 14.01.2015 01:21 # +1
Он сказал, что синглтон не нужен, потому что в ПХП и без этого есть @include_once
bot 16.01.2015 01:03 # 0
- ПХПшника спросили на собеседовании зачем нужен синглтон...
(30 тиков на ответ)
LispGovno 16.01.2015 01:12 # 0
(30 тиков на ответ)
- Получать ролтон за каждую строчку кода
- Тугодум!
1024-- 16.01.2015 16:05 # 0
Похвально. Сразу видно, что Царь, а не заедушный питушок.
роллтон
guest 16.01.2015 16:29 # 0
http://gadgetsin.com/uploads/2010/11/ramen_noodle_cup_usb_humidifier.jpg
bormand 13.01.2015 22:28 # 0
Я сейча уже на три раза перечитывал эти определения и на русском и на английском, и так и не понял, почему фабричный метод не является всего лишь частным случаем абстрактной фабрики...
Анонимус 13.01.2015 22:31 # 0
Для аналогии: можно-ли назвать булеву переменную конечным автоматом?
LispGovno 13.01.2015 22:33 # 0
Анонимус 13.01.2015 22:40 # +1
bormand 13.01.2015 22:50 # 0
Фабричный метод: клиент хочет запилить некую хуёвину, имеющую известный ему интерфейс. Если у него есть какие-то требования к этой хуёвине - их совсем мало, и они передаются прямо в метод. Конкретный класс этой хуёвины и большую часть её настроек определяет фабричный метод.
Абстрактная фабрика: клиент хочет запилить несколько взаимосвязанных хуёвин, имеющих известные ему интерфейсы. Если у него есть какие-то требования к этой хуёвине - их немного, и они передаются прямо фабрике. Конкретные классы этих хуёвин и большую часть их настроек определяет абстрактная фабрика.
Строитель: клиент хочет запилить некую хуёвину, имеющую известный ему интерфейс. При этом он, сука, привередливая, и у него куча требований к ней: "чтоб сиськи третьего размера, готовить умела и мозг не ебала!". Конкретный класс этой хуёвины и какую-то часть её настроек определяет строитель.
Там, имхо, настолько тонкие границы между юзкейсами этих трёх паттернов, что их почти не видно... И разве гибрид фабрики и билдера не имеет права на жизнь? В общем-то можно было описать все эти 3 случая одним паттерном и не париться...
bormand 13.01.2015 22:56 # 0
bot 13.01.2015 23:06 # 0
tirinox 14.01.2015 07:33 # +3
bormand 14.01.2015 08:19 # +1
bormand 14.01.2015 08:32 # +5
tirinox 14.01.2015 09:51 # +3
Stallman 14.01.2015 11:57 # +1
tirinox 14.01.2015 11:58 # +1
bormand 14.01.2015 12:15 # +1
Vasiliy 14.01.2015 14:57 # 0
bormand 14.01.2015 15:46 # 0
Анонимус 14.01.2015 21:31 # 0
* каждый раз одно и тоже (синглтон)
* по инстансу на запрос (храница в реквесте)
* каждый раз новый
* результат работы хитрого фабричного метода
* по одному на поток (практически тозе самое что и с реквестом)
* по одному на приложение
* ваш вариант
* ничего из выше перечисленного
офигенно же!
roman-kashitsyn 14.01.2015 01:09 # +1
Возможно, вы имели в виду это две большие задницы
bormand 14.01.2015 01:20 # 0
Vasiliy 14.01.2015 14:46 # 0
Fike 13.01.2015 22:06 # 0
LispGovno 13.01.2015 22:24 # 0
bot 13.01.2015 22:34 # 0