Коля Дубр

Коля Дубр
Рейтинг
153
Регистрация
02.03.2005
Должность
NetCat
Интересы
cms, музыка, лингвистика
T.R.O.N:
Вот идеологи языка, в какой-то момент, начинают терять любовь к своему детищу и начинают искать способы снава начать получать удовольствие от него

У Вас потрясающе романтические представления о причинах отраслевых процессов :)

Друзья, мне бы поработать надо, вечером все отвечу!

dlyanachalas:
Речь идет о том, что в интернете не осилили даже нормальное форматирование кода ещё.

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

dlyanachalas:
По-моему, ООП в обычных интернет-страницах на php (которые годятся для создания 99,9% всех сайтов, которые есть в сети) смотрится как корове седло. И хотя при программировании на С++ я использую только ООП, при программировании на php, я его не использовал никогда. И даже не порывался.

Может Вы просто не умеете его готовить? А функции-то хоть в php Вы используете? Или goto хватает? :)

dlyanachalas:
Просмотр чужих объектов на php вызывает у меня только улыбку) В С++ такое даже объектами бы постеснялся называть))

Наверное, все-таки классов? И-таки чем сишные объекты правовернее, ну, кроме статической типизации, про которую тоже можно поспорить?

malls:
Вот я наверное по этому тему и поднял... Поглядел вокруг себя - и не увидел достойного применения для ООП в пхп-вебстроительстве. Хотя в топике приводили такие...

Посмотрите всякие фреймворки. Они только с виду страшные, если поковыряться - много интересного найдете :)

malls:
Хоть какой-нибудь пример??? А то JS никак вообще в голове с ООП не вяжется.

Да любой пример :) Хоть бы вот этот:

ipfw:
Если Вы создаете 200 воинов, скорее всего "внутри" игры создаеться коллекция обьектов типа Warrior.

и т.д. В окружении веб-сервера это все не имеет смысла, в вебе не нужны объекты, висящие в памяти и ждущие событий, в вебе объекты существуют на протяжении долей секунды, от создания до отдачи клиенту. (Возможны исключения, но с ними нечасто приходится сталкиваться). А в JS всю эту кутерьму как раз можно использовать. Подумайте над архитектурой тетриса, например, как бы Вы его стали реализовывать :)

shi:
Это полиморфизм.

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

dlyanachalas:
В оффлайн-языках это окончательно стало стандартом лет 15 назад.

Потому что эффективность оффлайн-программистов в буржунии измеряется непустыми строками кода ;) Предлагаю прекратить оффтопный холивар про скобки и заняться делом, т.е. холиваром про ООП. Хотите поговорить о скобках - велкам в отдельный топик.

malls:
Например, распространенный скрипт подключаемый ко многим сайтам: sape.php

Как тут уже сказали, это не лучший пример ООП. Тем не менее, даже в таком виде он позволяет делать небольшие трюки.

1. Наследуемся от их класса, переопределяем raise_error(), делаем отправку уведомления об ошибке по мылу, или по аське, или запись в лог, или еще что угодно. "Родной" код при этом не меняется, мы можем его обновлять. Это наследование.

2. Другие методы тоже можно переопределять, как именно - вопрос фантазии. Если бы декомпозиция класса была выполнена более аккуратно, вариантов было бы больше. Например, можно сделать, чтоб ссылки брались не из медленного файла, а из какого-нибудь быстрого кэша. Поскольку информация о способе хранения и извлечения данных спрятана за интерфейсом, клиентский код от наших экспериментов не пострадает. Это инкапсуляция.

3. Можно, например, написать адаптер, приводящий вызовы нескольких разных бирж к единому интерфейсу, использовать какой-нибудь порождающий шаблон, чтоб изолировать код, который решает, какая биржа лучше подходит на этой странице (т.е. будет создавать экземпляр нужного класса), и далее во всем клиентском коде отображать ссылки, вообще не имея понятия, откуда они взялись. Это полиморфизм.

Тут можно поспорить, что на функциях можно сделать то же самое.

Во-первых, пример не самый удачный - когда интерфейс по сути состоит из единственного метода, действительно выигрыш не велик. Но это не значит, что ООП плохо, просто этот конкретный класс спроектирован в стиле "минимализм" :)

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

Ну и наконец самый простой, но очень важный аргумент. Сейчас ООП - это не только стандарт технологический, но и стандарт мышления большинства специалистов. Они видят мир в терминах классов и методов. Если ты видишь мир как-то иначе, будет довольно сложно общаться с коллегами и использовать результаты их труда. Это не хорошо и не плохо, просто на сегодняшний день это так. Наверное, потом будет как-то еще.

P.S. Кстати, могу еще рассказать, почему многим пыхарям сложно въехать в ООП. Дело в том, что большинство примеров, удачно иллюстрирующих основные принципы, не слишком применимы в вебе, в силу специфики среды (которая в большинстве случаев - однопоточная, синхронная, и где объекты не существуют на протяжении долгого времени). В вебе приходится иметь дело с абстракциями другого рода, и это сбивает с толку. Я бы, кстати, рекомендовал веб-программистам, желающим въехать в ООП, тренироваться в области JavaScript. Хотя там реализация ООП довольно нетривиальная, реальные практические преимущества подхода, мне кажется, там понять легче.

edogs:
Потому что функции все-таки жрут в случае пхп раза в 2-3 меньше памяти в целом и все-таки быстрее чем классы.

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

1. Проблема - закончилась оперативная память, которую может сожрать PHP.

2. 35 мегов - это довольно много. На шаред-хостинге едва ли дадут увеличить, но все же попробуйте

ini_set("memory_limit","50M"); 

3. Вероятно, скрипт устроен неправильно, едва ли есть реальная необходимость держать столько добра в памяти. Обратитесь к разработчику - как правило, можно найти, что за мусор скапливается.

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

Каширин:
Туда нельзя. Насчет джефиного самогона я договорюсь

Есть мысль протащить контрабандой канистру контрабандного рома. Погрузим Ктулхе в барабан 😂

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

И да, мой телефон: 8 (985) 119-59-92, мало ли кому пригодится :)

Chikey.ru:
vasyatko, впечатлительные не должны ходить по большому интернету, им надо сидеть в песочнице. вам сюда

Chikey.ru, будете проповедовать свою ересь, когда выйдете из бана, ок? А пока почитайте правила форума, пригодится.

Тему закрываю за отсутствием ТС.

юни, Костя вроде говорил, что "Director" - не окончательный вариант.

И такое название на сайте было еще до этой темы, если не путаю.

Ну и чего, 130 постов, а ни названия, ни сисек? Топику незачот :(

Чем zAdmin / dataman перестал устраивать, кстати?

По сабжу +1 к юни, "Генерал" хорошее слово. А в буржуйском варианте может быть "Generalized CMS", т.е. "Обобщенная CMS", что вполне отражает суть, как я ее помню.

diafan:
На самом деле немного за 300, а не далеко за 100...

Дык мало знать, что они просто "есть", хочется ж еще и посмотреть.

И я бы рекомендовал в первую очередь внести в каталог CMSMagazine не свои работы, а работы нескольких разных партнеров, т.к. наличие сторонних разработчиков ("отчуждаемость") - сверхважный показатель, отличающий настоящий продукт от внутреннего студийного инструмента. Пока я не вижу ни одной реальной работы, сделанной за пределами студии Диафан.

думаю:
Просто последнее время про него что-то много говорить начали, коробит аж, уж такое ощущение будто там действительно какой то рейтинг есть, а не просто перечисление CMS расставленные в рандомном порядке

А ты внимательнее посмотри, вдруг и правда есть?

Для интерпретации любых цифер, собранных по известной методике, надо немного включать мозг. Непрозрачность методики и нехватка данных - серьезные упреки любому рейтингу, если же методика ясна при достаточно полной выборке - все претензии к тому, кто не может должным образом проанализировать данные. Сорри за оффтоп.

diafan, скриншоты из ворда (вроде таких) очень неудобно читать, ИМХО.

Друзья, если вы думаете, что можно создать тему про работу в "Веб-строительстве", не указав вилку цен (что запрещено правилами "Работы"), а потом еще 20 постов обсуждать эти не указанные цены (что запрещено теми же правилами)... то вы неправильно думаете :)

ТС, укажите приемлемый диапазон, участники, хватит флудить.

Уношу топик в "Работу".

Всего: 1529