|
|
|
| Здравствуйте. У меня такая просьба. Я до настоящего времени использовал только процедурное программирование на php, но сейчас хочу в серьез заняться изучением ООП. Подаскажите подходящую литературу, желательно с доступными и хорошими примерами. | |
|
|
|
|
|
|
|
|
для: hanterz
(07.04.2007 в 19:35)
| | Эд Леки-Томпсон, Хьяво Айде-Гудман, Алек Коув, Стивен Д. Новицки "РНР 5 для профессионалов" | |
|
|
|
|
|
|
|
для: Valick
(07.04.2007 в 20:43)
| | Хорошей бы книгой не назвал, вообще эта серия книг очень неудачна (такое ощущение, что специально такие книги для неё подбирают). Книга эта по ООП PHP 4, объектно-ориентированная модель PHP 5 описывается с 50 по 51 страницу (ну, и конечно на титульной странице) - описание заключается в списке нововведений. Кроме того написана очень туманно (это вообще почерк этой серии)...
PS обычно не критикую книги по PHP, но эта красная серия просто достала... каждый раз книга из этой серии разочаровывает. | |
|
|
|
|
|
|
|
для: cheops
(07.04.2007 в 23:52)
| | Может и так, но других я не нашёл.
Игорь Вячеславович, только пару часов назад подумал, что неплохо было бы, если бы вы написали книгу по ОПП, хотел создать тему по этому вопросу. Потому как тема действительно актуальна. Чтобы кодить объектами надо сначала думать объектами, а этого как раз и не хватает.
Мне однажды приснился сон:
Длинный забор который нельзя обойти, а возле забора растёт ромашка, и чтобы проснуться мне надо было её сорвать. Просыпаясь было минутное прозрение. Класс - цветок, объект - ромашка, функция выхода - сорвать.
Но как всегда бывает в жизни просыпаясь теряешь, что-то неуловимое...
И ещё вопрос изучение UML мне как нибудь поможет в изучении принципов объектно ориентированного программирования? | |
|
|
|
|
|
|
|
для: Valick
(08.04.2007 в 00:32)
| | Других, да нет - я собственно поэтому и разочаровался в этой книге, ожидал свежих идей - решил время купить за деньги :))), а тут обратно самому думать нужно...
Объектно-ориентированное программирование под PHP ещё как таковое не сложилось, так как это уникальная модель - полное отсутствие типизации, возможность динамического создания переменных, в том числе и членов класса в любой момент, так ещё ввели акссесоры и специальный метод для эмуляции методов. В связи с этим многие проблемы, которые возникают в других языках - просто не возникают, т.е. половину паттернов можно смело выбрасывать - так как многие из них просто решаются базовыми средствами ООП модели PHP. С другой стороны очень уж много соблазнов для создания плохого кода, которые просто не возникают в других языках (возможности просто нет). SPL вообще не понял зачем... если по аналогии с STL в С++ то совершенно зря - в C++ это блестящая попытка получить то, что в языке никогда не было... В PHP ассоциативных массивов и инструментов для работы с ними столько, сколько нет ни в одном другом языке (ну может только в Perl) - SPL в отсутствии перегрузки операторов по сравнению с базовыми возможностями языка - рядом не валялась. Т.е. большинство разработчиков смотрят на PHP ООП и не понимают, что с ним собственно делать... Многие задачи решаются прекрасно и без него, какие-то серьёзные объектно-ориентированные задачи на одной странице, живущей 30 секунд, практически не возникает... сохранять объекты куда-то? Так баз объектно-ориентированных нет... приходится их серилизовать, а как потом поиск осуществлять? В общем либо вообще не используют ООП, либо используют так, как описано в упомянутой выше книге - сразу ко всему много, но в общем в процедурном стиле с редкими вкраплениями ООП.
Вообще говоря имеются мысли написать свои соображения по поводу ООП, с реальными примерами, которые действительно используются, работают и обеспечивают повторное использование кода. Просто взять и показать примеры, где ООП работает, а где его использование не оправдано по времени разработки и читабельности/сопровождению кода. Тем более мы в последнее время используем объектно-ориентированные возможности PHP 5, а многие хостинги осуществляют его поддержку.
>И ещё вопрос изучение UML мне как нибудь поможет в изучении принципов объектно
>ориентированного программирования?
Нет, только в документировании проекта, если над ним работает более одного человека (а лучше больше 10). | |
|
|
|
|
|
|
|
для: Valick
(08.04.2007 в 00:32)
| | Суть в том, что почти все паттерны других языков в PHP не актуальны (базовых средств достаточно), а свои ещё не сложились, так как очень мало разработчиков действительно по настоящему использовали возможности PHP на серьёзных иерархических схемах. Отсюда в общем разброд и шатания... Времени мало прошло, всего два года, с момента ввода ООП-модели... Да и сама модель вообще говоря помоему нуждается в совершенствовании (имеются явные карявки). | |
|
|
|
|
|
|
|
для: Valick
(08.04.2007 в 00:32)
| | Вообще самое серьёзное затруднение, которое испытываешь при работе с ООП в PHP - это передача объекта между страницами. Страница живёт мало, объект нужно пересобирать... при хранении в базе данных он лежит мёртвым грузом, т.е. чтобы с ним работать его нужно обратно вытаскивать в медленный PHP... Объектных баз данных на самом деле очень не хватает при использовании ООП в PHP. | |
|
|
|
|
|
|
|
для: cheops
(08.04.2007 в 01:16)
| | Понятно. А что вы скажите по поводу книги Джорджа Шлосснейгла "Профессиональное программирование на РНР" изд. Вильямс (не красная серия), я её только недавно купил, поэтому забыл про неё вчера.
По поводу "UML 2.0 Объектно ориентированное моделирование и разработка" 2-е издание.
Вот кое что из оглавления:
1.1 Что такое объектная ориентированность.
1.3.5 Выделение сущьности объекта.
3 Моделирование классов.
3.1 Концепции объекта и класса.
3.2 Концепции связи и ассоциации.
3.3 Обобщение и наследование.
Ну и т.д., времени пока небыло ознакомиться более детально, но надеюсь информация такого рода мне не помешает. | |
|
|
|
|
|
|
|
для: Valick
(08.04.2007 в 07:56)
| | >А что вы скажите по поводу книги Джорджа Шлосснейгла "Профессиональное
>программирование на РНР"
К сожалению, не читал. | |
|
|
|