ООП : опрос + флуд

betik

Новичок
ООП : опрос + флуд

I. Опрос:

1. Вы пишите только струтурный код
2. И структурный и объектный
3. Всюду объекты
4. some more

II. Флуд

Где нужно, а где не нужно использовать ООП?
Какие классы на PHP4 вы написали, которые потом вам пригодились в дальнейшем и изменить класс было легче чем функцию...
 

Доктор

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

Vladson

Сильнобухер
Я только структурщик, я начинал с ассемблера Z80 (Позднее i8086) и тогда мне был важен каждый герц процессора, теперь отвыкнуть немогу, хотя бывали исключения по просьбам заказчиков, но для себя исключительно структурно
 

Ghecko

Новичок
Хм... ну ИМХО разумность ООП подхода обусловлнена не только потребностью повторного использования кода и удобством поддержки и расширения написанного кода в будующем, а еще и ООП возможностями языка. Например, опять же ИМХО, в PHP4 таких возможностей практичесски небыло и по этому ООП подход не был распространен в проектах написанных на PHP4. Я видел множество
PHP движков написанных как бы с приминением ООП подхода, но все же это не то... не хватает той прозрачноти, которая есть например в C# при работе с объектами.
А вообще ООП подход очень удобен, только при условии что программист знает не только алгоритмы сортировки но и паттерны проектирования и вообще проектировать умеет, в таком случае с приминением ООП получается красивый и легкий в сопровождении код.
Надеюсь что с окончательным приходом PHP5 все изменится в лучшую сторону :)
Сам же я все еще использую PHP4 в работе , поэтому пишу восновном ПОП код, но в проектах где используется ООП стараюсь не отходить в сторону ПОП.
 

syfisher

TDD infected!!
I
3. Всюду объекты
II
Понять принципы ООП по плечам не каждому. На это нужно годы труда, куча практики и т.д. Вы пробовали написать модульный тест на процедурный код? Могу сказать, что задачка не из легких, особенно если объемы кода достаточно велики. А как насчет расширяемости и повторного использования кода? И вовсе не той, когда для расширения поведения вы перекрываете родительский классы.

Проблемы ООП разработчиков, ИМХО, из книг, на основе которых они изучали ООП. Авторы их перешли из ПОП области в ООП и многие проблемы принесли с собой.

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

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

Возможно, что это все очень субъективное мнение. Я начал программировать сразу с объектного кода и практически никогда не занимался ПОП. Причем все это началось с книг GoF, Буча, Р.Мартина, XP и т.д.

Насчет PHP4 - не могу сказать, что реализация ООП здесь совсем кривая. Сейчас мы работаем над проектом, который на 98% состоит из объектного кода. Особых проблем пока нет, раздражает только отсутствие минимальной типизации и интерфейсов. Это приводит к тому, что код нужно тестировать более качественно и подробно - увеличивает объем работы. Все остальное - множественное наследование, перегрузка, конструкторы, деструкторы - по большому счету лишние. Даже без исключительных ситуаций можно обойтись.
 

betik

Новичок
...речь шла о проектах PHP4 ...
Зачем себя мучать, если всё криво?
 

syfisher

TDD infected!!
Какие классы на PHP4 вы написали, которые потом вам пригодились в дальнейшем и изменить класс было легче чем функцию...
ВСЕ пригодились и все были проще в расширении. Читай внимательней. ;)
 

Vladson

Сильнобухер
Ну если так судить то скоро надо будет создавать тему ООП vs ПОП и устраивать битвы между фанатиками...

Имхо не этично рассуждать какой подход лучше, если процедурник напишет объектный код, то у него не получется сделать его так-же хорошо как и процедурный, и наоборот тоже, т.е всё зависит не от подхода, а от того кто его пишет (как в прочем и от того что скрипт делает)
 

neko

tеam neko
> Понять принципы ООП по плечам не каждому. На это нужно годы
> труда, куча практики и т.д.

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

Panchous

Павел
согласен с neko

> Где нужно, а где не нужно использовать ООП?
вопрос имеет смысл разве что в контексте реальной задачи, а в общем - это дело личных предпочтений

> Какие классы на PHP4 вы написали, которые потом вам пригодились в дальнейшем и изменить класс было легче чем функцию...
Если класс написан грамотно, то в большинстве случаев его и менять-то не надо
И вообще, чтобы сравнивать класс и функцию надо иметь представление и о первом, и о втором
 

betik

Новичок
...А тогда почему все работдатели требуют владение ООП (впрочем они иногда ещё и корел+фотошоп+высшее художественное требуют, но не суть)...?

Причём я более-менее владею ООП (более-менее соображаю в дельфи), но структурно я пишу лучше - мне это проще и понятней...... Такое впечатление, что многие работодатели хотят чтобы программер в принципе не умел писать структурно =\ ... Чтобы не повадно было?
 

Фанат

oncle terrible
Команда форума
Нельзя ли было эту бессмысленную фразу написать с самого начала? Тогда бы наорд не парился тратить время на обиженного работодателем нерадивого кодера, списавшего всё на ооп.
 

betik

Новичок
Неа, Фанат, низя... Религия не позволяет..
А ты что за народ так волнуешься? Ты не ваолнуйся, будь спокойнее.. И люди к тебе потянутся =)

-~{}~ 27.04.05 11:10:

ЗЫ я не про себя пишу, я в принципе...
 

neko

tеam neko
причем тут работодатели вообще, я могу поинтересоваться?
или просто излиться некуда?
 

betik

Новичок
Да в общем-то не причём, можно сказать что и излиться некуда...

Открой rabota.ru просмотри вакансии.. Небольшие конторки, которые "ставят гостевухи на сайт + вопрос-ответ" ищут программеров.. И неприменно требование ООП... Чем оно обосновано?

И тем не менее мне очень интересно узнать какие преимущества даёт ООП в ПХП4 на практике?..

PS просто пофлудить
 

neko

tеam neko
ну а если не причем может не надо их сюда приплетать?
и причем тут пзп4 и ООП?
если у тебя ООП строго ассоциируется с кейвордом Class -- оно не для тебя. оно не про это вообще..
 

Rezec

По пиву? (socket80)
за ООП в PHP
1. global в функциях не надо обьявлять.
2. похожие функции в один класс

вобщем удобнее получается и время экономится
 

betik

Новичок
2neko Причём тут я?

II. Флуд

Где нужно, а где не нужно использовать ООП?
Какие классы на PHP4 вы написали, которые потом вам пригодились в дальнейшем и изменить класс было легче чем функцию...

...Вот о чём речь.

2 socket80
1. global - это очень удобно, имхо.
2. Похожие функции в одну библиотеку....
 

syfisher

TDD infected!!
Причём я более-менее владею ООП (более-менее соображаю в дельфи), но структурно я пишу лучше - мне это проще и понятней......
Lol. Знать синтаксис дельфи так же далеко от ООП, как станцевать медляк с девушкой от бальных танцев.

И тем не менее мне очень интересно узнать какие преимущества даёт ООП в ПХП4 на практике?..
Почти все, что дает ООП любому разработчику на любом языке программирования.
 

neko

tеam neko
блин когда в головы этих ... наконец вдолбится что ООП это парадигма.. в то время как язык лишь средство ее выражения

я не могу себе представить писателя который бы спросил:
мужеки я хочу напесать роман, чо мне дадут слова из английскова??!???
 
Сверху