Когда уже наконец выйдет PHP5.3 ?

Статус
В этой теме нельзя размещать новые ответы.

x-yuri

Новичок
а почему с абстрактными классами легче рефакторить, чем с интерфейсами?

-~{}~ 10.01.09 22:09:

и зачем ты в конструктор вынес "создание" объекта? это экономия одной строчки в каждом потомке? то же самое по поводу $instance в классе singleton?

-~{}~ 10.01.09 22:15:

и кроме того ты собираешься наследоваться от test и переопределять там get_instance?
 

cDLEON

Онанист РНРСlub
а почему с абстрактными классами легче рефакторить, чем с интерфейсами?
Уменьшая количество копи-паста, уменьшаем проблемы при рефакторинге ?
и зачем ты в конструктор вынес "создание" объекта? это экономия одной строчки в каждом потомке? то же самое по поводу $instance в классе singleton?
Именно. А что это плохо?
и кроме того ты собираешься наследоваться от test и переопределять там get_instance?
Уже отказался от идеи наследовать синглтоны и статичные методы. Всю стороннюю логику собираюсь подключать к нему с помощью других классов.
 

x-yuri

Новичок
ты слишком жадный в плане копи-паста :)

-~{}~ 10.01.09 23:00:

Уже отказался от идеи наследовать синглтоны и статичные методы
разумное решение, даже если бы и было late static binding
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
cDLEON
приведи хоть один реальный пример c живой логикой, где использование потомка синглтона может иметь хоть какой-то смысл
(смайлик со слезами)

-~{}~ 11.01.09 03:01:

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

cDLEON

Онанист РНРСlub
grigori
PHP:
abstract class router extends singleton {
 protected $args;
 protected $root;
 protected $req_file_name;
 abstract static function get_args();
 abstract static function get_root();
 abstract static function get_req_file_name();
}
class router_command_line extends router {
}
class router_web_rewrite extends router {
}
Ну что то вроде этого 8))
А теперь - рыдай :D
ЗЫ. Вообще я уже отказался от этих паттернов вообще. Очень не предсказуемый код потом получается 8) Хрен поймёшь кто и где вызывает 8) Да и вообще, мне кажется, что этими паттернами прикрывают плохую архитектуру... Собственно мнение сформировалось после года использования оных... Теперь мой быдло-фреймворк заманаешься рефакторить )
 

x-yuri

Новичок
паттерны - полезная штука, надо только уметь ее использовать
приведи пример непредсказуемого кода в результате применения паттернов?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
cDLEON, ну тогда все понятно - проблема в паттернах!
вот перепишешь паттерны - и заживешь!

(вот мы тут на Украине тоже думаем: если в 17м году Россия таки выведет флот из Крыма, у наших националистов пропадет смысл жизни ... что делать?!)

По сути: "ты рыбу ловишь? нет, я рыбу ловлю".
Как я и предполагал, ответ - расширение "служебного" класса разными реализациями для взаимодействия с разными однородными внешними средами с целью приведения объектов к схожему API.
Для этой цели существует понятие "интерфейс" :)
А твой быдло-фреймверк заманаешься не только рефакторить, но и читать, и тестировать, и использовать где-либо, кроме того проекта, для которого ты "фреймворк" написал ;)

Тут я с тобой согласен, поможет только одно: забить на паттерны с ООП, писать функциональный код.
 

cDLEON

Онанист РНРСlub
Как я и предполагал, ответ - расширение "служебного" класса разными реализациями для взаимодействия с разными однородными внешними средами с целью приведения объектов к схожему API.
Для этой цели существует понятие "интерфейс"
Можешь наставить меня на путь истинный? В каком месте у меня промах? В том, что пытаюсь сделать код, для которого не нужны будут "адапторы"? А наследованием я хочу убрать копи-паст?
И вообще - чем плохо вместо интерфейсов использывать абстрактные классы? В чём их минус?
Я не волшебник, я только учусь 8)
А по поводу политики - я вообще не знаю о чём вы думаете там, сливая миллиарды на очередные перевыборы.
А твой быдло-фреймверк заманаешься не только рефакторить, но и читать, и тестировать, и использовать где-либо, кроме того проекта, для которого ты "фреймворк" написал
А вот здесь по-подробнее. Как написать так, что бы всё, что ты перечислил делать без проблем? ) Использывать интерфейсы? Ты к этому ведёшь?)))

-~{}~ 13.01.09 03:08:

Мысли вслух...
Вот скачал я себе два разрекламированных фреймворка...
Окей думаю. Клёво. Заценю скорость. Скачал два "скелета" веб-приложений. В одном и во втором ни чего кроме вывода статического шаблона welcome нет. В итоге и первый и второй фреймворк выполнялся примерно 0.3 сек. Для сравнения - мой быдло-фреймворк выполнял ту же задачу за 0.03-0.09 секунды на этой же машине, и имел примерно такое же апи, для решения этой задачи.
Сразу же оговорюсь - я не ставлю в пример его. Потому как действительно дело с рефакторингом своего кода внутри "фреймворка" у меня чаще всего заканчивается мусорной корзиной...Вот, собственно, и пытаюсь узнать "секрет успеха". Который мне не удалось накопить за 3 года самообучения...
 

x-yuri

Новичок
Можешь наставить меня на путь истинный? В каком месте у меня промах? В том, что пытаюсь сделать код, для которого не нужны будут "адапторы"? А наследованием я хочу убрать копи-паст?
И вообще - чем плохо вместо интерфейсов использывать абстрактные классы? В чём их минус?
промах в том, что ты наследованием хочешь убрать копи-паст, оно не для того предназначено

Вот скачал я себе два разрекламированных фреймворка...
Окей думаю. Клёво. Заценю скорость. Скачал два "скелета" веб-приложений. В одном и во втором ни чего кроме вывода статического шаблона welcome нет. В итоге и первый и второй фреймворк выполнялся примерно 0.3 сек. Для сравнения - мой быдло-фреймворк выполнял ту же задачу за 0.03-0.09 секунды на этой же машине, и имел примерно такое же апи, для решения этой задачи.
Сразу же оговорюсь - я не ставлю в пример его. Потому как действительно дело с рефакторингом своего кода внутри "фреймворка" у меня чаще всего заканчивается мусорной корзиной...Вот, собственно, и пытаюсь узнать "секрет успеха". Который мне не удалось накопить за 3 года самообучения...
код лучше писать для человека, а не для компьютера. А уже _потом_ смотреть что именно тормозит, как это улучшить и какой выигрыш в скорости ты получишь. И если это действительно важно для твоей конкретной задачи, то тогда стоит оптимизировать
 

HraKK

Мудак
Команда форума
Первое что приводят неудачники в своих фреймворках это скорость.
Давай потягаемся с Xcache чтоб кешировался код которого у меня явно больше ;) ?)

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

cDLEON

Онанист РНРСlub
Первое что приводят неудачники в своих фреймворках это скорость.
Первое, что пишут неудачники у себя в инфе, это слово "хххххх".
А уже потом приводят оправдание в виде скорости.
Давай потягаемся с Xcache чтоб кешировался код которого у меня явно больше ?)
Я с быдлом писюнами не меряюсь.
Кстати - если для вывода простейшей статичной странички у тебя подгружается весь фреймворк полностью - то те слова у тебя в инфе - правда.
промах в том, что ты наследованием хочешь убрать копи-паст, оно не для того предназначено
Но я ведь не только копи-паст убираю ))) Вообще наследованием я стараюсь решить однотипные задачи для всех потомков) Как бы стандартизировать их...

код лучше писать для человека, а не для компьютера. А уже _потом_ смотреть что именно тормозит, как это улучшить и какой выигрыш в скорости ты получишь. И если это действительно важно для твоей конкретной задачи, то тогда стоит оптимизировать
Виндой здесь попахивает, батенька, виндой ))
А вообще - я с тобой согласен - но когда 0.3 сек выполняется вывод какой то задрыпанной странички - по мне - черезчур..
Всё должно быть в меру...

-~{}~ 13.01.09 03:32:

А главное что ты берешь 1 частичку маленкую отдельно написанную и такуюже частичку из огромной кучи. Конечно твоя будет быстрее, но если затронуть все вместе то тут как обычно у горе фреймворков начинаются проблемы))
Нет, я беру целый фреймворк. Свой и чужой - с, подчёркиваю, практически одинаковым, предоставляемым апи, для решения этой задачи - вывода куска статического шаблона.
 

x-yuri

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

Виндой здесь попахивает, батенька, виндой ))
Виндой говоришь? http://en.wikipedia.org/wiki/Unix_philosophy#Raymond:_The_Art_of_Unix_Programming (Rule of Economy)
и это еще стоит вспомнить: "Premature optimization is the root of all evil." (с) Donald Knuth

А вообще - я с тобой согласен - но когда 0.3 сек выполняется вывод какой то задрыпанной странички - по мне - черезчур..
так ты сделай сайт на этом фреймворке. Посмотри, что именно в нем тормозит, сделай выводы и напиши фреймворк лучше.
Ты ж говоришь, что у тебя проблемы с рефакторингом? Ну и к чему тебе твоя скорость если твой проект с трудом поддается изменениям?
 

HraKK

Мудак
Команда форума
cDLEON
Давай ка ты будешь полегче на поворотах, акей?

Одинковое API можно реализовать множеством способов. Например можно в тупую вывести, а можно проверить права пользователя и т. д.

Кстати - если для вывода простейшей статичной странички у тебя подгружается весь фреймворк полностью - то те слова у тебя в инфе - правда.
Ога, конечно. А ты у нас умничка. Чмафки тебя фпузо.
Есть еще многое что подружаеться и выводиться не явно, адаптеры, хуки, ацл и т. д. и это все представляешь?! для вывода одной статичной страницы о ужас. И тут являешься ты под звуки небесных арф с фреймворком
class Framework
{
function showPage( $source )
{
include $source;
}
}
И тупо всех в кизяки по скорости!!!!!
 

cDLEON

Онанист РНРСlub
так ты сделай сайт на этом фреймворке.
Славик, что то я очкую©
Если этот фреймворк без БД одну страницу выполняет за 0.3 секунды, то что будет тогда, когда я к нему ещё и БД прикручу ?
В том то и дело. Наследование нужно для того, чтобы определить общий _интерфейс_, через который будет осуществляться работа с потомками
Окей. А зачем тогда наследовать класс от класса ? Ведь это не только интерфейс, это ещё и фукнционал...
 

HraKK

Мудак
Команда форума
Есть класс автомобиль и есть класс автомобиль с багажником.
Конечно логично тут наследование. Но вот наследовать класс колесо классу автомобиль - очень мудро)))
 

cDLEON

Онанист РНРСlub
Давай ка ты будешь полегче на поворотах, акей?
Слышь, ты с какого района ?
Тебя ни кто в эту тему не звал. Иди туда, откуда пришёл. Ибо с тобой конструктивного диалога построить не получается - понтаметр зашкаливает.
 

HraKK

Мудак
Команда форума
я уже вижу что получиться
Руль extends Труба extend Коробка передач exetend Валл extends Ручка ))))
 

cDLEON

Онанист РНРСlub
Есть класс автомобиль и есть класс автомобиль с багажником.
Конечно логично тут наследование. Но вот наследовать класс колесо классу автомобиль - очень мудро)))
Логично. Но ведь ни кто не наследует автомобиль от колеса.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху