Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Необходим ли ООП в php? 
:(
    Опции темы
IZ@TOP
Дата 3.8.2009, 17:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(youri @  3.8.2009,  16:36 Найти цитируемый пост)
не так уж и естественно

Как может выглядеть в процедурном стиле реализация таких паттернов как "Одиночка" и "Фабрика", например? Т.е. паттерны, это прямое следствие развития ООП, соответственно, что здесь и взаимосвязь прямая.

За темку, кстати, автору домо-аригато - улыбнуло smile 

NLspieler, за сколько ты напишешь, и не просто нага... прости, накодишь, а читаемо напишешь в процедурном стиле гостевую книгу из своего примера? Задача проста, к тому же разбита по частям - это так, однако, закодив ее на фреймворке, ты ощутишь разницу во времени и читаемости/удобства использования кода.

Добавлено @ 17:21
Цитата(youri @  3.8.2009,  16:36 Найти цитируемый пост)
Покажи человеку, например, как в его задаче поможет применение ООП или паттернов?

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


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
youri
Дата 3.8.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(IZ@TOP @  3.8.2009,  17:17 Найти цитируемый пост)
Как может выглядеть в процедурном стиле реализация таких паттернов как "Одиночка" и "Фабрика", например?

а можно конкретные примеры использования в веб-программировании на ООП?

Цитата(IZ@TOP @  3.8.2009,  17:17 Найти цитируемый пост)
Т.е. паттерны, это прямое следствие развития ООП, соответственно, что здесь и взаимосвязь прямая.

паттерны не только для ООП существуют

Цитата(IZ@TOP @  3.8.2009,  17:17 Найти цитируемый пост)
Не понимаю, зачем показывать?

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

Цитата(IZ@TOP @  3.8.2009,  17:17 Найти цитируемый пост)
Об этом уже столько всего написано, нарисовано, сделано, что даже слов не надо

что никто уже и не помнит зачем *JOKINGLY* А если серьезно, то хотелось бы на конкретной задаче увидеть преимущества ООП. "Напишите на фреймворке" не катит, потому что не очевидно, что нельзя написать фреймворк без ООП
PM   Вверх
nerezus
Дата 3.8.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

а можно конкретные примеры использования в веб-программировании на ООП?
 Сделай на django блог(с каментами) и сравни эти ~40 строк кода(+ шаблоны) с тем, что бы ты делал на чистом ЯП.

Это сообщение отредактировал(а) nerezus - 3.8.2009, 19:59


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
solenko
Дата 3.8.2009, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



Цитата(nerezus @  3.8.2009,  17:08 Найти цитируемый пост)
Сделай на django блог(с каментами) и сравни эти ~40 строк кода(+ шаблоны) с тем, что бы ты делал на чистом ЯП.

А можно я сделаю блог с комментами на друпале не написав ни строки кода и скажу что процедурный стиль круче? )
Цитата(youri @  3.8.2009,  16:52 Найти цитируемый пост)
А если серьезно, то хотелось бы на конкретной задаче увидеть преимущества ООП.

А если серьезно, то на тривиальном примере вы разници не заметите, а готовить пример на n-сот строк вам никто не будет


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
nerezus
Дата 3.8.2009, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

А можно я сделаю блог с комментами на друпале не написав ни строки кода и скажу что процедурный стиль круче? )
 Давай. но при условии, что всю ЛОГИКУ ПРИЛОЖЕНИЯ пишешь с нуля ;)


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
NLspieler
Дата 4.8.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Цитата(IZ@TOP @  3.8.2009,  17:17 Найти цитируемый пост)
NLspieler, за сколько ты напишешь, и не просто нага... прости, накодишь, а читаемо напишешь в процедурном стиле гостевую книгу из своего примера?

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

Цитата(IZ@TOP @  3.8.2009,  17:17 Найти цитируемый пост)
Не понимаю, зачем показывать? Об этом уже столько всего написано, нарисовано, сделано, что даже слов не надо

Везде написано как, но нигде не написано зачем. 

Но тем не менее, кажется я начинаю понимать, зачем нужен ООП. 

Например, при разработке игры, в которой существует множество объектов, между которыми есть сложная связь, ООП безусловно нужен. 

Зачастую же, его применяют там, где он совсем не нужен и только все усложняет

 

PM MAIL   Вверх
nerezus
Дата 4.8.2009, 13:56 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

Написал часов за 10 (знаю что медленно, ведь стаж программирования у меня меньше года)
 а я за полчаса сделал. Стаж проф. разработки 12 месяцев.
Админка каментов и постов через скаффолдинг.
2 контроллера, 2 вида, 2 модели. Модель создается ~2 минуты, вид по ~3 минуты некрасивый, контроллеры по 5 минут. Остальное время  на раздумья и питье кофе.
Это не геста, а блог. Геста в 2 раза быстрее.

Вот теперь подумай и сравни затраты.

Цитата

Зачастую же, его применяют там, где он совсем не нужен и только все усложняет
 Это из серии "не разобрался, но осуждаю".


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
IZ@TOP
Дата 5.8.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(youri @  3.8.2009,  18:52 Найти цитируемый пост)
а можно конкретные примеры использования в веб-программировании на ООП?

Пожалуйста, пример: печать фотографий. Мы печатаем фотографии в разных лабораториях, у всех у них разный формат обмена данными и в этом случае очень помогает паттерн "Фабрика", которая занимается производством объектов с нужным интерфейсом определенной фотолаборатории (в этой задаче используется как минимум 2 паттерна).

Цитата(youri @  3.8.2009,  18:52 Найти цитируемый пост)
паттерны не только для ООП существуют

Не буду спорить на счет истории - не знаю и, в общем-то, не сильно интересно.

Цитата(youri @  3.8.2009,  18:52 Найти цитируемый пост)
ну чтобы стало очевидно, что эту задачу лучше решить с помощью ООП. Но не просто разбить функции по классам, а чтобы было что-то кроме группировки. Т.е. как от процедурного программирования прийти к ООП на данной конкретной задаче, используя принципы ООП и паттерны и так, чтобы увидеть преимущества

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

Цитата(youri @  3.8.2009,  18:52 Найти цитируемый пост)
что никто уже и не помнит зачем *JOKINGLY* А если серьезно, то хотелось бы на конкретной задаче увидеть преимущества ООП. "Напишите на фреймворке" не катит, потому что не очевидно, что нельзя написать фреймворк без ООП 

Я могу задать встречный вопрос: а вы попробуйте, а потом спрашивайте. Знаете, в процессе изучения и грамотного составления вопроса, по большей части, истина всплывает сама по себе.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
morfus
Дата 5.8.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 30.6.2007

Репутация: 1
Всего: 2



Все вы забываете один момент, цель должна оправдывать средства !!!

Если нужна геста (а гесты редко могут похвастаться HighLoad-ом и даже мегабайтными я уж не говорю про гигабайтные БД) то пишется она одной рукой за пол часа, а второй рукой можно вспоминать свою девушку )))

(что удивительно готовых качественных никогда не видел, хотя честно искал, в итоге написал себе сам с базой в файле, с ноября файл БД не привысил и 30кб, модерируется в виндовом блокноте)

Если нужен блог то в 99% достаточно взять тот-же WordPress и не париться, нафига писать с нуля то что написано и написано лучше чем вы напишете за 2-3 минуты за которые скачаете и установите готовый.

Выбор стиля программирования как и выбор фреймворка и даже просто выбор пива (алкогольное или без) которое вы будете пить в процессе работы, зависит от ожидаемого результата, а не от того что "в классическом случае удобнее" потому что не все случаи классические (хотя да, большинство, но всё равно не все)
PM MAIL WWW   Вверх
nerezus
Дата 5.8.2009, 17:24 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



morfus, блог был примером.
Под часть задач нет готовых продуктов. И именно эту часть и заказывают, как правило.

Так что ты не в тему влез.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
IZ@TOP
Дата 5.8.2009, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(morfus @  5.8.2009,  18:10 Найти цитируемый пост)
Выбор стиля программирования как и выбор фреймворка и даже просто выбор пива (алкогольное или без) которое вы будете пить в процессе работы, зависит от ожидаемого результата, а не от того что "в классическом случае удобнее" потому что не все случаи классические (хотя да, большинство, но всё равно не все) 

Да нет вопросов. Если мне надо тулзу написать, которая обойдет хранилище картинок и перегенерит превьюшки, я этот скрипт на PHP никогда в жизни писать не буду, потому, что быстрее и практичнее sh/bash, к примеру. Но, тут скрывается очень большая подоплека: я не буду писать на PHP подобный скрипт, потому, что умею писать на том, который подходит под задачу в конкретном случае гораздо лучше.
А те, кто не умеют - будут писать на PHP. 


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
WIPS
Дата 5.8.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 199
Регистрация: 22.5.2006
Где: Украина, Киев

Репутация: 1
Всего: 8



Странный сабж - "нужен ли ООП в PHP?". Тут был очень прав Маяковский: "Если звезды зажигают - значит - это кому-нибудь нужно...". Ребята из зенда кроплят днем и ночью оттачивая ООП в ZE2- это раз, потом не покладая рук расширяют Zend Framewok - это два. И наконец самое главное -  огромное к-во людей пользуется ООП именно в PHP и именно сейчас.

По моему ответ ясен.

А если кому-то непонятно или не удобно писать с применением ООП - никто ж не заставляет. Придете к этому сами... или не придете. И поймите меня правильно, если не придете, то это не значит - плохо, просто это не для Вас. А если не для Вас то на кой оно Вам надо smile
--------------------
Автопроизводители, машины, марки, модели!
PM MAIL WWW ICQ Skype   Вверх
Sentox
Дата 5.8.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Цитата(WIPS @ 5.8.2009,  20:59)
 А если не для Вас то на кой оно Вам надо smile

 smile 
PM MAIL   Вверх
morfus
Дата 6.8.2009, 01:36 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 30.6.2007

Репутация: 1
Всего: 2



Цитата(WIPS @  5.8.2009,  20:59 Найти цитируемый пост)
По моему ответ ясен.

По моему он повторяет мой

Цитата(morfus @  5.8.2009,  17:10 Найти цитируемый пост)
Выбор стиля программирования как и выбор фреймворка и даже просто выбор пива (алкогольное или без) которое вы будете пить в процессе работы, зависит от ожидаемого результата, а не от того что "в классическом случае удобнее" потому что не все случаи классические (хотя да, большинство, но всё равно не все) 


PM MAIL WWW   Вверх
youri
Дата 6.8.2009, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: 6
Всего: 16



Цитата(solenko @  3.8.2009,  22:37 Найти цитируемый пост)
А если серьезно, то на тривиальном примере вы разници не заметите, а готовить пример на n-сот строк вам никто не будет

не обязательно писать код, можно попытаться объяснить на пальцах, а лучше просто сказать: если ты будешь делать то-то и то-то, то тебе понадобиться сделать то-то и то-то, а это удобнее сделать с помощью ООП, потому-то и потому-то

Цитата(IZ@TOP @  3.8.2009,  17:17 Найти цитируемый пост)
Просто я прекрасно понимаю, что лень губительна, а желание, что бы тебе разжевали и положили в ротик - неистребимо. Однако, давайте жить по принципу - ищущий да найдет.

дело не в "положили в ротик", меня интересует скорее, что именно дает ООП (в контексте php). А так, я найду. Просто можно было бы обсудить. Сомневаюсь я, что все осознают, зачем оно нужно

Цитата(IZ@TOP @  5.8.2009,  15:58 Найти цитируемый пост)
Пожалуйста, пример: печать фотографий. Мы печатаем фотографии в разных лабораториях, у всех у них разный формат обмена данными и в этом случае очень помогает паттерн "Фабрика", которая занимается производством объектов с нужным интерфейсом определенной фотолаборатории (в этой задаче используется как минимум 2 паттерна).

могу предложить такой вариант (если состояния у объектов нету): для каждой лаборатории создаем набор функций с соответствующим префиксом и одну функцию, которая возвращает префикс, основываясь на каком-то условии; этот префикс используется для вызова нужных функций. Что-то типа
Код

$pre = lab_prefix();
lab_call( $pre, 'func', 1, true... );

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

$pre = lab_prefix();
$lab = lab_call( $pre, 'init', 1, true... );
lab_call( $prefix, $lab, ... );

Кстати, интересно, это ООП-подход или процедурный? Если ООП, то как бы тогда это выглядело в процедурном стиле?
p.s. имеет смысл рассматривать более стандартные задачи, чтобы не возникало лишних вопросов типа "а есть состояние у объектов, возвращаемых фабрикой?", "какие объекты используются для работы с лабораторией?" и т.д. ООП ведь имеет смысл использовать и для стандартных задач?

Цитата(IZ@TOP @  5.8.2009,  15:58 Найти цитируемый пост)
Впрочем, помочь ему стоит, но объяснять разницу между "ползать" и "ходить" никто объяснять не будет, я думаю.Еще, если быть до конца откровенным - жалко времени и нет опыта, необходимого для грамотного преподнесения материала.

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

Цитата(IZ@TOP @  5.8.2009,  15:58 Найти цитируемый пост)
Я могу задать встречный вопрос: а вы попробуйте, а потом спрашивайте. Знаете, в процессе изучения и грамотного составления вопроса, по большей части, истина всплывает сама по себе.

тоже вариант, конечно. Вспоминается фраза: "Мудрость приходит с возрастом, но бывает так, что возраст приходит один" smile
PM   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.